Skip to content

Commit

Permalink
Implements Enable enums to be used as dictionary keys #30
Browse files Browse the repository at this point in the history
  • Loading branch information
SteveDunn committed Apr 12, 2023
1 parent 4ec181c commit 40cafa3
Show file tree
Hide file tree
Showing 50 changed files with 979 additions and 220 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,17 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
{
global::System.Text.Json.JsonSerializer.Serialize(writer, value.Value);
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
var primitive = global::System.Text.Json.JsonSerializer.Deserialize<VOUNDERLYINGTYPE>(ref reader, options);
return VOTYPE.Deserialize(primitive);
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(global::System.Text.Json.JsonSerializer.Serialize(value.Value));
}
#endif
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,16 @@ public override void Write(global::System.Text.Json.Utf8JsonWriter writer, VOTYP
{
writer.WriteBooleanValue(value.Value);
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(bool.Parse(reader.GetString()));
}

public override void WriteAsPropertyName(global::System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString());
}
#endif
}
12 changes: 12 additions & 0 deletions src/Intellenum/Templates/Byte/Byte_SystemTextJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,16 @@ public override void Write(global::System.Text.Json.Utf8JsonWriter writer, VOTYP
__NORMAL__ writer.WriteNumberValue(value.Value);
__STRING__ writer.WriteStringValue(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(global::System.Byte.Parse(reader.GetString(), global::System.Globalization.NumberStyles.Any, global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(global::System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}
#endif
}
14 changes: 14 additions & 0 deletions src/Intellenum/Templates/Char/Char_SystemTextJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,18 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
{
writer.WriteStringValue(value.Value.ToString());
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
var s = reader.GetString();

return VOTYPE.Deserialize(s[0]);
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString());
}
#endif
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,16 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
{
writer.WriteStringValue(value.Value.ToString("yyyy-MM-dd", global::System.Globalization.CultureInfo.InvariantCulture));
}

public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return new VOTYPE(global::System.DateOnly.ParseExact(reader.GetString(), "yyyy-MM-dd", global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString("yyyy-MM-dd", global::System.Globalization.CultureInfo.InvariantCulture));
}
}
#endif

Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,16 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
{
writer.WriteStringValue(value.Value);
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(global::System.DateTime.ParseExact(reader.GetString(), "O", global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString("O"));
}
#endif
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,16 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
{
writer.WriteStringValue(value.Value);
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(global::System.DateTimeOffset.ParseExact(reader.GetString(), "O", global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString("O"));
}
#endif
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,16 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
__NORMAL__ writer.WriteNumberValue(value.Value);
__STRING__ writer.WriteStringValue(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(global::System.Decimal.Parse(reader.GetString(), global::System.Globalization.NumberStyles.Any, global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}
#endif
}
12 changes: 12 additions & 0 deletions src/Intellenum/Templates/Double/Double_SystemTextJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,16 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
__NORMAL__ writer.WriteNumberValue(value.Value);
__STRING__ writer.WriteStringValue(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(global::System.Double.Parse(reader.GetString(), global::System.Globalization.NumberStyles.Any, global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}
#endif
}
19 changes: 0 additions & 19 deletions src/Intellenum/Templates/Float/Float_DapperTypeHandler.cs

This file was deleted.

11 changes: 0 additions & 11 deletions src/Intellenum/Templates/Float/Float_EfCoreValueConverter.cs

This file was deleted.

10 changes: 0 additions & 10 deletions src/Intellenum/Templates/Float/Float_LinqToDbValueConverter.cs

This file was deleted.

20 changes: 0 additions & 20 deletions src/Intellenum/Templates/Float/Float_NewtonsoftJsonConverter.cs

This file was deleted.

15 changes: 0 additions & 15 deletions src/Intellenum/Templates/Float/Float_SystemTextJsonConverter.cs

This file was deleted.

41 changes: 0 additions & 41 deletions src/Intellenum/Templates/Float/Float_TypeConverter.cs

This file was deleted.

12 changes: 12 additions & 0 deletions src/Intellenum/Templates/Guid/Guid_SystemTextJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,16 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
{
writer.WriteStringValue(value.Value);
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(System.Guid.Parse(reader.GetString()));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString());
}
#endif
}
12 changes: 12 additions & 0 deletions src/Intellenum/Templates/Int/Int_SystemTextJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,16 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
__NORMAL__ writer.WriteNumberValue(value.Value);
__STRING__ writer.WriteStringValue(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(global::System.Int32.Parse(reader.GetString(), global::System.Globalization.NumberStyles.Any, global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}
#endif
}
12 changes: 12 additions & 0 deletions src/Intellenum/Templates/Long/Long_SystemTextJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,16 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
__NORMAL__ writer.WriteNumberValue(value.Value);
__STRING__ writer.WriteStringValue(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}

#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(global::System.Int64.Parse(reader.GetString(), global::System.Globalization.NumberStyles.Any, global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}
#endif
}
11 changes: 11 additions & 0 deletions src/Intellenum/Templates/Short/Short_SystemTextJsonConverter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,15 @@ public override void Write(System.Text.Json.Utf8JsonWriter writer, VOTYPE value,
__NORMAL__ writer.WriteNumberValue(value.Value);
__STRING__ writer.WriteStringValue(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}
#if NET6_0_OR_GREATER
public override VOTYPE ReadAsPropertyName(ref global::System.Text.Json.Utf8JsonReader reader, global::System.Type typeToConvert, global::System.Text.Json.JsonSerializerOptions options)
{
return VOTYPE.Deserialize(global::System.Int16.Parse(reader.GetString(), global::System.Globalization.NumberStyles.Any, global::System.Globalization.CultureInfo.InvariantCulture));
}

public override void WriteAsPropertyName(System.Text.Json.Utf8JsonWriter writer, VOTYPE value, global::System.Text.Json.JsonSerializerOptions options)
{
writer.WritePropertyName(value.Value.ToString(global::System.Globalization.CultureInfo.InvariantCulture));
}
#endif
}

0 comments on commit 40cafa3

Please sign in to comment.