diff --git a/Qowaiv.sln b/Qowaiv.sln index 6370398f..78dcbce9 100644 --- a/Qowaiv.sln +++ b/Qowaiv.sln @@ -70,7 +70,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "shared", "shared", "{7F291C EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Qowaiv.Benchmarks", "specs\Qowaiv.Benchmarks\Qowaiv.Benchmarks.csproj", "{6F2DEAC5-6E5D-4144-BA24-37039F387D67}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Qowaiv.Diagnostics.Contracts", "src\Qowaiv.Diagnostics.Contracts\Qowaiv.Diagnostics.Contracts.csproj", "{75090D12-3917-4CDD-8DDE-09B8407723A8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Qowaiv.Diagnostics.Contracts", "src\Qowaiv.Diagnostics.Contracts\Qowaiv.Diagnostics.Contracts.csproj", "{75090D12-3917-4CDD-8DDE-09B8407723A8}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Qowaiv.Wikipedia", "specs\Qowaiv.Wikipedia\Qowaiv.Wikipedia.csproj", "{472741F3-7CA5-49B0-90B2-5BFB82832D99}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -114,6 +116,10 @@ Global {75090D12-3917-4CDD-8DDE-09B8407723A8}.Debug|Any CPU.Build.0 = Debug|Any CPU {75090D12-3917-4CDD-8DDE-09B8407723A8}.Release|Any CPU.ActiveCfg = Release|Any CPU {75090D12-3917-4CDD-8DDE-09B8407723A8}.Release|Any CPU.Build.0 = Release|Any CPU + {472741F3-7CA5-49B0-90B2-5BFB82832D99}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {472741F3-7CA5-49B0-90B2-5BFB82832D99}.Debug|Any CPU.Build.0 = Debug|Any CPU + {472741F3-7CA5-49B0-90B2-5BFB82832D99}.Release|Any CPU.ActiveCfg = Release|Any CPU + {472741F3-7CA5-49B0-90B2-5BFB82832D99}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -130,6 +136,7 @@ Global {9CCFB684-06FA-48B1-8732-0A520B639E11} = {40C1E942-8DB1-4E58-8FB4-71F5EDA66029} {7F291C39-7785-41A7-8678-2E79B347E7AD} = {A4C3C9FF-4EED-41FE-8849-C896429254B5} {6F2DEAC5-6E5D-4144-BA24-37039F387D67} = {40C1E942-8DB1-4E58-8FB4-71F5EDA66029} + {472741F3-7CA5-49B0-90B2-5BFB82832D99} = {40C1E942-8DB1-4E58-8FB4-71F5EDA66029} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9B55A336-E2D3-4656-9840-D519B3E1159B} diff --git a/example/Qowaiv.AspNetCore.Mvc.ModelBinding/Qowaiv.AspNetCore.Mvc.ModelBinding.csproj b/example/Qowaiv.AspNetCore.Mvc.ModelBinding/Qowaiv.AspNetCore.Mvc.ModelBinding.csproj index 0a0d51fc..cecf24ee 100644 --- a/example/Qowaiv.AspNetCore.Mvc.ModelBinding/Qowaiv.AspNetCore.Mvc.ModelBinding.csproj +++ b/example/Qowaiv.AspNetCore.Mvc.ModelBinding/Qowaiv.AspNetCore.Mvc.ModelBinding.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net8.0 diff --git a/specs/Qowaiv.Benchmarks/Qowaiv.Benchmarks.csproj b/specs/Qowaiv.Benchmarks/Qowaiv.Benchmarks.csproj index bf4bbce6..cc184fb3 100644 --- a/specs/Qowaiv.Benchmarks/Qowaiv.Benchmarks.csproj +++ b/specs/Qowaiv.Benchmarks/Qowaiv.Benchmarks.csproj @@ -28,8 +28,8 @@ - + diff --git a/specs/Qowaiv.Specs/OpenApi/Open_API_specs.cs b/specs/Qowaiv.Specs/OpenApi/Open_API_specs.cs index 17b49ac5..bc628d9a 100644 --- a/specs/Qowaiv.Specs/OpenApi/Open_API_specs.cs +++ b/specs/Qowaiv.Specs/OpenApi/Open_API_specs.cs @@ -60,11 +60,7 @@ public void Describes() @enum = info.Enum?.ToArray(), }); #if DEBUG - Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(all, new System.Text.Json.JsonSerializerOptions - { - WriteIndented = true, - DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull, - })); + Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(all, Options)); #endif all.Should().NotBeEmpty(); } @@ -79,5 +75,13 @@ private sealed record OpenApiDataTypeInfo public bool nullable { get; init; } public string[]? @enum { get; init; } = []; } + +#if DEBUG + private static readonly System.Text.Json.JsonSerializerOptions Options = new() + { + WriteIndented = true, + DefaultIgnoreCondition = System.Text.Json.Serialization.JsonIgnoreCondition.WhenWritingNull, + }; +#endif } #endif diff --git a/specs/Qowaiv.Specs/TestTools/Generation/FluentAssertionExtensions.cs b/specs/Qowaiv.Wikipedia/Extensions/FluentAssertionExtensions.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Generation/FluentAssertionExtensions.cs rename to specs/Qowaiv.Wikipedia/Extensions/FluentAssertionExtensions.cs diff --git a/specs/Qowaiv.Specs/Globalization/Countries_generation.cs b/specs/Qowaiv.Wikipedia/Generation/Countries_generation.cs similarity index 99% rename from specs/Qowaiv.Specs/Globalization/Countries_generation.cs rename to specs/Qowaiv.Wikipedia/Generation/Countries_generation.cs index dff8ffa6..3166c4d7 100644 --- a/specs/Qowaiv.Specs/Globalization/Countries_generation.cs +++ b/specs/Qowaiv.Wikipedia/Generation/Countries_generation.cs @@ -1,7 +1,4 @@ -#if NET8_0_OR_GREATER -#if DEBUG - -using Qowaiv.TestTools.Generation; +using Qowaiv.TestTools.Generation; using Qowaiv.TestTools.Resx; using Qowaiv.TestTools.Wikipedia; @@ -255,6 +252,3 @@ public async Task zh() .Should().NotThrow(); } } - -#endif -#endif diff --git a/specs/Qowaiv.Specs/TestTools/Generation/CountryData.cs b/specs/Qowaiv.Wikipedia/Generation/CountryData.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Generation/CountryData.cs rename to specs/Qowaiv.Wikipedia/Generation/CountryData.cs diff --git a/specs/Qowaiv.Specs/TestTools/Generation/CountryDisplayName.cs b/specs/Qowaiv.Wikipedia/Generation/CountryDisplayName.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Generation/CountryDisplayName.cs rename to specs/Qowaiv.Wikipedia/Generation/CountryDisplayName.cs diff --git a/specs/Qowaiv.Specs/TestTools/Generation/Iso3166_1.cs b/specs/Qowaiv.Wikipedia/Generation/Iso3166_1.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Generation/Iso3166_1.cs rename to specs/Qowaiv.Wikipedia/Generation/Iso3166_1.cs diff --git a/specs/Qowaiv.Specs/TestTools/Generation/Iso3166_3.cs b/specs/Qowaiv.Wikipedia/Generation/Iso3166_3.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Generation/Iso3166_3.cs rename to specs/Qowaiv.Wikipedia/Generation/Iso3166_3.cs diff --git a/specs/Qowaiv.Wikipedia/Properties/GlobalUsings.cs b/specs/Qowaiv.Wikipedia/Properties/GlobalUsings.cs new file mode 100644 index 00000000..c2fe37c3 --- /dev/null +++ b/specs/Qowaiv.Wikipedia/Properties/GlobalUsings.cs @@ -0,0 +1,49 @@ +global using FluentAssertions; +global using NUnit.Framework; +global using Qowaiv; +global using Qowaiv.Conversion.Security; +global using Qowaiv.Conversion.Security.Cryptography; +global using Qowaiv.Diagnostics.Contracts; +global using Qowaiv.Financial; +global using Qowaiv.Formatting; +global using Qowaiv.Globalization; +global using Qowaiv.Hashing; +global using Qowaiv.Identifiers; +global using Qowaiv.IO; +global using Qowaiv.Mathematics; +global using Qowaiv.OpenApi; +global using Qowaiv.Security; +global using Qowaiv.Security.Cryptography; +global using Qowaiv.Sql; +global using Qowaiv.Statistics; +global using Qowaiv.TestTools; +global using Qowaiv.TestTools.Globalization; +global using Qowaiv.TestTools.IO; +global using Qowaiv.Text; +global using Qowaiv.Web; +global using System; +global using System.Collections; +global using System.Collections.Generic; +global using System.ComponentModel; +global using System.Diagnostics; +global using System.Diagnostics.CodeAnalysis; +global using System.Diagnostics.Contracts; +global using System.Globalization; +global using System.IO; +global using System.Linq; +global using System.Reflection; +global using System.Runtime.Serialization; +global using System.Security.Cryptography; +global using System.Text; +global using System.Text.RegularExpressions; +global using System.Threading.Tasks; +global using System.Xml.Serialization; +global using CustomSvo = Qowaiv.Customization.Svo; +global using GenericSvo = Qowaiv.Customization.Svo; +global using CustomGuid = Qowaiv.Identifiers.Id; +global using Int32Id = Qowaiv.Identifiers.Id; +global using Int64Id = Qowaiv.Identifiers.Id; +global using StringId = Qowaiv.Identifiers.Id; +global using CustomUuid = Qowaiv.Identifiers.Id; +global using Svo = Qowaiv.TestTools.Svo; + diff --git a/specs/Qowaiv.Wikipedia/Qowaiv.Wikipedia.csproj b/specs/Qowaiv.Wikipedia/Qowaiv.Wikipedia.csproj new file mode 100644 index 00000000..e4d546f5 --- /dev/null +++ b/specs/Qowaiv.Wikipedia/Qowaiv.Wikipedia.csproj @@ -0,0 +1,15 @@ + + + + + + enable + net8.0 + CONTRACTS_FULL + + + + + + + diff --git a/specs/Qowaiv.Specs/TestTools/Wikipedia/UnknownLemma.cs b/specs/Qowaiv.Wikipedia/UnknownLemma.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Wikipedia/UnknownLemma.cs rename to specs/Qowaiv.Wikipedia/UnknownLemma.cs diff --git a/specs/Qowaiv.Specs/TestTools/Wikipedia/Wiki.cs b/specs/Qowaiv.Wikipedia/Wiki.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Wikipedia/Wiki.cs rename to specs/Qowaiv.Wikipedia/Wiki.cs diff --git a/specs/Qowaiv.Specs/TestTools/Wikipedia/WikiLemma.cs b/specs/Qowaiv.Wikipedia/WikiLemma.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Wikipedia/WikiLemma.cs rename to specs/Qowaiv.Wikipedia/WikiLemma.cs index d9539629..c0b6f7bb 100644 --- a/specs/Qowaiv.Specs/TestTools/Wikipedia/WikiLemma.cs +++ b/specs/Qowaiv.Wikipedia/WikiLemma.cs @@ -87,12 +87,12 @@ private async Task Update() throw new InvalidOperationException($"GET {Url} responded with {response.StatusCode}: {body}"); } } -#endif - - public bool HasExpired => !Cached.Exists || (Clock.UtcNow() - Cached.LastWriteTimeUtc) > Expiration; private static readonly JsonSerializerOptions Options = new() { PropertyNameCaseInsensitive = true, }; +#endif + + public bool HasExpired => !Cached.Exists || (Clock.UtcNow() - Cached.LastWriteTimeUtc) > Expiration; } diff --git a/specs/Qowaiv.Specs/TestTools/Wikipedia/WikiLink.cs b/specs/Qowaiv.Wikipedia/WikiLink.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Wikipedia/WikiLink.cs rename to specs/Qowaiv.Wikipedia/WikiLink.cs diff --git a/specs/Qowaiv.Specs/TestTools/Wikipedia/WikiQueryResult.cs b/specs/Qowaiv.Wikipedia/WikiQueryResult.cs similarity index 100% rename from specs/Qowaiv.Specs/TestTools/Wikipedia/WikiQueryResult.cs rename to specs/Qowaiv.Wikipedia/WikiQueryResult.cs diff --git a/src/Qowaiv/Financial/IbanParser.cs b/src/Qowaiv/Financial/IbanParser.cs index 742ce943..50f245b7 100644 --- a/src/Qowaiv/Financial/IbanParser.cs +++ b/src/Qowaiv/Financial/IbanParser.cs @@ -27,8 +27,6 @@ internal static partial class IbanParser if (++pos == 1) continue; -#pragma warning disable S2589 // Boolean expressions should not be gratuitous - // FP. See: https://github.com/SonarSource/sonar-dotnet/issues/8474 if (Parsers[id] is { } bban) { return bban.Parse(str, index, id); @@ -41,7 +39,6 @@ internal static partial class IbanParser prefixed = true; } else return null; -#pragma warning restore S2589 // Boolean expressions should not be gratuitous } else if (pos != 0) {