diff --git a/BO4E/BO/Zaehlzeitdefinition.cs b/BO4E/BO/Zaehlzeitdefinition.cs index e5b56f1d..ed90423c 100644 --- a/BO4E/BO/Zaehlzeitdefinition.cs +++ b/BO4E/BO/Zaehlzeitdefinition.cs @@ -1,16 +1,11 @@ +using System; +using System.Runtime.ConstrainedExecution; +using System.Text.Json.Serialization; using BO4E.COM; using BO4E.ENUM; using BO4E.meta; - using Newtonsoft.Json; - using ProtoBuf; - -using System; -using System.Reflection.Metadata.Ecma335; -using System.Runtime.ConstrainedExecution; -using System.Text.Json.Serialization; - using Verwendungszweck = BO4E.COM.Verwendungszweck; namespace BO4E.BO @@ -18,7 +13,7 @@ namespace BO4E.BO /// /// Der NB bzw. LF nutzt Zählzeitdefinitionen für die Tarifierung von Werten. /// Zaehlzeitdefinitionen werden in der Marktkommunikation mit Prüfidentifikator 25001 (UTILTS) übermittelt - /// Eine Zählzeitdefinition umfasst dabei eine Liste von möglichen Zählzeiten, + /// Eine Zählzeitdefinition umfasst dabei eine Liste von möglichen Zählzeiten, /// den dazugehörigen Registern und der tatsächlich ausgerollten Zählzeit (wenn diese elektronisch übermittelt wird) /// [ProtoContract] @@ -36,6 +31,7 @@ private DateTime _Beginndatum get => Beginndatum?.UtcDateTime ?? DateTime.MinValue; set => Beginndatum = DateTime.SpecifyKind(value, DateTimeKind.Utc); } + /// /// Der inklusive Zeitpunkt ab dem die Zaehlzeitdefinitionen ausgerollt sind /// @@ -55,6 +51,7 @@ private DateTime _Endedatum get => Endedatum?.UtcDateTime ?? DateTime.MinValue; set => Endedatum = DateTime.SpecifyKind(value, DateTimeKind.Utc); } + /// /// Der exklusive Zeitpunkt bis zu dem die Zaehlzeitdefinitionen ausgerollt sind /// @@ -74,6 +71,7 @@ private DateTime _Version get => Version.UtcDateTime; set => Version = DateTime.SpecifyKind(value, DateTimeKind.Utc); } + /// /// Version der Zählzeitdefinition als Datum /// @@ -115,12 +113,14 @@ private DateTime _Version /// /// Liste der ausgerollten Zählzeiten /// - [JsonProperty(Required = Required.Always, Order = 12, PropertyName = "ausgerollteZaehlzeiten")] + [JsonProperty( + Required = Required.Always, + Order = 12, + PropertyName = "ausgerollteZaehlzeiten" + )] [JsonPropertyName("ausgerollteZaehlzeiten")] [ProtoMember(12)] [JsonPropertyOrder(12)] public System.Collections.Generic.List AusgerollteZaehlzeiten { get; set; } - - } } diff --git a/BO4E/BO4E.csproj b/BO4E/BO4E.csproj index c27abc6f..8f013cda 100644 --- a/BO4E/BO4E.csproj +++ b/BO4E/BO4E.csproj @@ -1,6 +1,6 @@ - net6.0 + netstandard2.0 BO4E true Hochfrequenz.BO4Enet @@ -26,7 +26,7 @@ true Embedded True - 9 + latest BO4Enet.xml annotations @@ -77,11 +77,16 @@ + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/BO4E/meta/LenientConverters/LenientGeraetemerkmalGasConverter.cs b/BO4E/meta/LenientConverters/LenientGeraetemerkmalGasConverter.cs index 7f0779b2..90aaeeb3 100644 --- a/BO4E/meta/LenientConverters/LenientGeraetemerkmalGasConverter.cs +++ b/BO4E/meta/LenientConverters/LenientGeraetemerkmalGasConverter.cs @@ -1,9 +1,8 @@ +using System; using BO4E.ENUM; - +using EnumsNET; using Newtonsoft.Json; -using System; - namespace BO4E.meta.LenientConverters { /// @@ -18,12 +17,17 @@ public class LenientGeraetemerkmalGasConverter : JsonConverter /// public override bool CanConvert(Type objectType) { - return objectType == typeof(BO4E.ENUM.Geraetemerkmal) || objectType == typeof(BO4E.ENUM.Geraetemerkmal?); + return objectType == typeof(BO4E.ENUM.Geraetemerkmal) + || objectType == typeof(BO4E.ENUM.Geraetemerkmal?); } /// - public override object ReadJson(JsonReader reader, Type objectType, object existingValue, - JsonSerializer serializer) + public override object ReadJson( + JsonReader reader, + Type objectType, + object existingValue, + JsonSerializer serializer + ) { string rawValue; switch (reader.Value) @@ -40,7 +44,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist try { - return Enum.Parse(rawValue); + return Enums.Parse(rawValue); } catch (ArgumentException) when (rawValue.StartsWith("G")) { @@ -48,7 +52,7 @@ public override object ReadJson(JsonReader reader, Type objectType, object exist { return Geraetemerkmal.GAS_G2P5; } - return Enum.Parse("GAS_" + rawValue); + return Enums.Parse("GAS_" + rawValue); } } diff --git a/BO4E/meta/LenientConverters/LenientSystemTextGeraetemerkmalGasConverter.cs b/BO4E/meta/LenientConverters/LenientSystemTextGeraetemerkmalGasConverter.cs index e875c57b..886c7937 100644 --- a/BO4E/meta/LenientConverters/LenientSystemTextGeraetemerkmalGasConverter.cs +++ b/BO4E/meta/LenientConverters/LenientSystemTextGeraetemerkmalGasConverter.cs @@ -1,7 +1,7 @@ -using BO4E.ENUM; - using System; using System.Text.Json; +using BO4E.ENUM; +using EnumsNET; using System.Text.RegularExpressions; namespace BO4E.meta.LenientConverters @@ -10,12 +10,17 @@ namespace BO4E.meta.LenientConverters /// The lenient ZaehlergroesseGasConverter allows for transforming strings that do not contain the prefix "GAS_" into valid /// /// The main symptom for its usage is "Error converting value "G4" to type Geraetemerkmal" - public class LenientSystemTextGeraetemerkmalGasConverter : System.Text.Json.Serialization.JsonConverter + public class LenientSystemTextGeraetemerkmalGasConverter + : System.Text.Json.Serialization.JsonConverter { /// /// /// - public override Geraetemerkmal Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public override Geraetemerkmal Read( + ref Utf8JsonReader reader, + Type typeToConvert, + JsonSerializerOptions options + ) { if (reader.TokenType == JsonTokenType.Number) { @@ -24,7 +29,7 @@ public override Geraetemerkmal Read(ref Utf8JsonReader reader, Type typeToConver var rawString = reader.GetString(); try { - return Enum.Parse(rawString); + return Enums.Parse(rawString); } catch (ArgumentException) when (rawString.StartsWith("G")) { @@ -32,7 +37,7 @@ public override Geraetemerkmal Read(ref Utf8JsonReader reader, Type typeToConver { return Geraetemerkmal.GAS_G2P5; } - return Enum.Parse("GAS_" + rawString); + return Enums.Parse("GAS_" + rawString); } } @@ -44,7 +49,11 @@ public override Geraetemerkmal Read(ref Utf8JsonReader reader, Type typeToConver /// /// /// - public override void Write(Utf8JsonWriter writer, Geraetemerkmal value, JsonSerializerOptions options) + public override void Write( + Utf8JsonWriter writer, + Geraetemerkmal value, + JsonSerializerOptions options + ) { var stringValue = value.ToString(); var match = GasPrefixRegex.Match(stringValue); @@ -62,12 +71,17 @@ public override void Write(Utf8JsonWriter writer, Geraetemerkmal value, JsonSeri /// The lenient ZaehlergroesseGasConverter allows for transforming strings that do not contain the prefix "GAS_" into valid nullable /// /// The main symptom for its usage is "Error converting value "G4" to type Geraetemerkmal" - public class LenientSystemTextNullableGeraetemerkmalGasConverter : System.Text.Json.Serialization.JsonConverter + public class LenientSystemTextNullableGeraetemerkmalGasConverter + : System.Text.Json.Serialization.JsonConverter { /// /// /// - public override Geraetemerkmal? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) + public override Geraetemerkmal? Read( + ref Utf8JsonReader reader, + Type typeToConvert, + JsonSerializerOptions options + ) { if (reader.TokenType == JsonTokenType.Number) { @@ -80,7 +94,7 @@ public class LenientSystemTextNullableGeraetemerkmalGasConverter : System.Text.J } try { - return Enum.Parse(rawString); + return Enums.Parse(rawString); } catch (ArgumentException) when (rawString.StartsWith("G")) { @@ -88,7 +102,7 @@ public class LenientSystemTextNullableGeraetemerkmalGasConverter : System.Text.J { return Geraetemerkmal.GAS_G2P5; } - return Enum.Parse("GAS_" + rawString); + return Enums.Parse("GAS_" + rawString); } } @@ -100,7 +114,11 @@ public class LenientSystemTextNullableGeraetemerkmalGasConverter : System.Text.J /// /// /// - public override void Write(Utf8JsonWriter writer, Geraetemerkmal? value, JsonSerializerOptions options) + public override void Write( + Utf8JsonWriter writer, + Geraetemerkmal? value, + JsonSerializerOptions options + ) { if (value.HasValue) { diff --git a/BO4E/meta/NonOfficialCategory.cs b/BO4E/meta/NonOfficialCategory.cs index 1817d05b..b4874a72 100644 --- a/BO4E/meta/NonOfficialCategory.cs +++ b/BO4E/meta/NonOfficialCategory.cs @@ -31,11 +31,13 @@ public enum NonOfficialCategory [EnumMember(Value = "REGULATORY_REQUIREMENTS")] REGULATORY_REQUIREMENTS, +#pragma warning disable CS0419 // Zweideutige Referenz im cref-Attribut /// - /// an information or field is no longer necessary or outdated (please use + /// an information or field is no longer necessary or outdated (please use /// too). Hochfrequenz favors removal of this field from the official BO4E standard. /// [Obsolete("Hochfrequenz favours the removal of this field/property from BO4E.")] +#pragma warning restore CS0419 // Zweideutige Referenz im cref-Attribut [EnumMember(Value = "PROPOSED_DELETION")] PROPOSED_DELETION, @@ -46,4 +48,4 @@ public enum NonOfficialCategory [EnumMember(Value = "CUSTOMER_REQUIREMENTS")] CUSTOMER_REQUIREMENTS, } -} \ No newline at end of file +} diff --git a/BO4E/protobuf-files/bo4e.proto b/BO4E/protobuf-files/bo4e.proto index f1d74c34..f3a0f239 100644 --- a/BO4E/protobuf-files/bo4e.proto +++ b/BO4E/protobuf-files/bo4e.proto @@ -1089,6 +1089,7 @@ message Messprodukt { Zaehlzeitregister Zaehlzeiten = 1021; bool ZweiteMessung = 1022; bool WerteuebermittlungAnNB = 1023; + EMobilitaetsart EMobilitaetsart = 1024; } enum MesstechnischeEinordnung { option (.protobuf_net.enumopt).namespace = "BO4E.ENUM"; @@ -2020,6 +2021,7 @@ message Zaehlwerk { int32 AnzahlAblesungen = 1020; Zaehlzeitregister Zaehlzeiten = 1021; string Konfiguration = 1022; + EMobilitaetsart EMobilitaetsart = 1023; } message Zaehlzeitregister { option (.protobuf_net.msgopt).namespace = "BO4E.COM"; diff --git a/TestBO4E.Extensions/TestBO4E.Extensions.csproj b/TestBO4E.Extensions/TestBO4E.Extensions.csproj index 0a7b67e1..5fc063be 100644 --- a/TestBO4E.Extensions/TestBO4E.Extensions.csproj +++ b/TestBO4E.Extensions/TestBO4E.Extensions.csproj @@ -12,11 +12,15 @@ - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + diff --git a/TestBO4E.Reporting/TestBO4E.Reporting.csproj b/TestBO4E.Reporting/TestBO4E.Reporting.csproj index b2e6ce6e..92cc932d 100644 --- a/TestBO4E.Reporting/TestBO4E.Reporting.csproj +++ b/TestBO4E.Reporting/TestBO4E.Reporting.csproj @@ -8,11 +8,15 @@ - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + + + diff --git a/json-schema-files/BO4E.BO.Angebot.json b/json-schema-files/BO4E.BO.Angebot.json index 0384d8a9..8bf34b49 100644 --- a/json-schema-files/BO4E.BO.Angebot.json +++ b/json-schema-files/BO4E.BO.Angebot.json @@ -3037,6 +3037,18 @@ "boolean", "null" ] + }, + "emobilitaetsart": { + "type": [ + "string", + "null" + ], + "enum": [ + null, + "WALLBOX", + "E_MOBILITAETSLADESAEULE", + "LADEPARK" + ] } } }, @@ -4443,6 +4455,18 @@ "string", "null" ] + }, + "emobilitaetsart": { + "type": [ + "string", + "null" + ], + "enum": [ + null, + "WALLBOX", + "E_MOBILITAETSLADESAEULE", + "LADEPARK" + ] } } },