diff --git a/ReleaseNotes.md b/ReleaseNotes.md index 127d0aa..7bec239 100644 --- a/ReleaseNotes.md +++ b/ReleaseNotes.md @@ -1,3 +1,21 @@ +# 1.2.0 +- Upgrade ServiceBricks Version and all related packages to latest version +- Fix for AzureDataTables to associate queries for CacheKey to PartitionKey +- Fix for Cosmos to remove indexes from modelbuilder +- Fix for Cosmos to remove HasPartition from modelbuilder for .NET 9 using compiler directive +- Fix for MongoDb to associate queries for CacheKey to Id and mappingprofile changes +- Fix for MongoDb to change Id to Bson.string type and store CacheKey instead of an objectid +- Remove resources folder from webapp projects + +# 1.1.3 +- Upgrade ServiceBricks Version + +# 1.1.2 +- Upgrade ServiceBricks Version + +# 1.1.1 +- Upgrade ServiceBricks Version + # 1.1.0 - Official Production Release diff --git a/ServiceBricksCacheV1.sln b/ServiceBricksCacheV1.sln index 2ed46b0..716fb3c 100644 --- a/ServiceBricksCacheV1.sln +++ b/ServiceBricksCacheV1.sln @@ -93,6 +93,28 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceBricks.Cache.XunitNe EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ServiceBricks.Cache.Microservice", "src\V1\ServiceBricks.Cache.Microservice\ServiceBricks.Cache.Microservice.csproj", "{F7B7F3B2-7A30-482A-A9A5-CCF3DAEB4A76}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Net9", "Net9", "{4792F5F1-BDD8-431B-828E-0035791CF035}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.AzureDataTables.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.AzureDataTables.XunitNet9\ServiceBricks.Cache.AzureDataTables.XunitNet9.csproj", "{29D705AE-0C96-433D-ACF5-0A37B095DF28}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.Client.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.Client.XunitNet9\ServiceBricks.Cache.Client.XunitNet9.csproj", "{DCEF54FB-E227-4992-8FDF-4BC7AAD69154}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.Cosmos.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.Cosmos.XunitNet9\ServiceBricks.Cache.Cosmos.XunitNet9.csproj", "{C2647AED-0576-4C04-821D-18D3C1086EE4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.InMemory.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.InMemory.XunitNet9\ServiceBricks.Cache.InMemory.XunitNet9.csproj", "{78F48946-B740-4D5F-9BD9-7F91B1AC3C73}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.MongoDb.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.MongoDb.XunitNet9\ServiceBricks.Cache.MongoDb.XunitNet9.csproj", "{435207BC-6ABF-4E71-8E9F-E5D12228A5CF}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.Postgres.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.Postgres.XunitNet9\ServiceBricks.Cache.Postgres.XunitNet9.csproj", "{68FDB266-6AC3-4418-833A-CC84067DF737}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.Sqlite.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.Sqlite.XunitNet9\ServiceBricks.Cache.Sqlite.XunitNet9.csproj", "{297E5DAF-9B29-4249-8DD1-85A6012E58BE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.SqlServer.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.SqlServer.XunitNet9\ServiceBricks.Cache.SqlServer.XunitNet9.csproj", "{CA332462-763C-4AF7-9FEB-B45122A93514}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ServiceBricks.Cache.XunitNet9", "src\V1\Tests\ServiceBricks.Cache.XunitNet9\ServiceBricks.Cache.XunitNet9.csproj", "{F816A557-0B64-435E-BD66-25182664E4D4}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebAppNet9", "src\V1\Tests\WebAppNet9\WebAppNet9.csproj", "{35F68E59-3F8C-495C-A10F-780FD9942384}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -263,6 +285,46 @@ Global {F7B7F3B2-7A30-482A-A9A5-CCF3DAEB4A76}.Debug|Any CPU.Build.0 = Debug|Any CPU {F7B7F3B2-7A30-482A-A9A5-CCF3DAEB4A76}.Release|Any CPU.ActiveCfg = Release|Any CPU {F7B7F3B2-7A30-482A-A9A5-CCF3DAEB4A76}.Release|Any CPU.Build.0 = Release|Any CPU + {29D705AE-0C96-433D-ACF5-0A37B095DF28}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {29D705AE-0C96-433D-ACF5-0A37B095DF28}.Debug|Any CPU.Build.0 = Debug|Any CPU + {29D705AE-0C96-433D-ACF5-0A37B095DF28}.Release|Any CPU.ActiveCfg = Release|Any CPU + {29D705AE-0C96-433D-ACF5-0A37B095DF28}.Release|Any CPU.Build.0 = Release|Any CPU + {DCEF54FB-E227-4992-8FDF-4BC7AAD69154}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DCEF54FB-E227-4992-8FDF-4BC7AAD69154}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DCEF54FB-E227-4992-8FDF-4BC7AAD69154}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DCEF54FB-E227-4992-8FDF-4BC7AAD69154}.Release|Any CPU.Build.0 = Release|Any CPU + {C2647AED-0576-4C04-821D-18D3C1086EE4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C2647AED-0576-4C04-821D-18D3C1086EE4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C2647AED-0576-4C04-821D-18D3C1086EE4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C2647AED-0576-4C04-821D-18D3C1086EE4}.Release|Any CPU.Build.0 = Release|Any CPU + {78F48946-B740-4D5F-9BD9-7F91B1AC3C73}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78F48946-B740-4D5F-9BD9-7F91B1AC3C73}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78F48946-B740-4D5F-9BD9-7F91B1AC3C73}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78F48946-B740-4D5F-9BD9-7F91B1AC3C73}.Release|Any CPU.Build.0 = Release|Any CPU + {435207BC-6ABF-4E71-8E9F-E5D12228A5CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {435207BC-6ABF-4E71-8E9F-E5D12228A5CF}.Debug|Any CPU.Build.0 = Debug|Any CPU + {435207BC-6ABF-4E71-8E9F-E5D12228A5CF}.Release|Any CPU.ActiveCfg = Release|Any CPU + {435207BC-6ABF-4E71-8E9F-E5D12228A5CF}.Release|Any CPU.Build.0 = Release|Any CPU + {68FDB266-6AC3-4418-833A-CC84067DF737}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {68FDB266-6AC3-4418-833A-CC84067DF737}.Debug|Any CPU.Build.0 = Debug|Any CPU + {68FDB266-6AC3-4418-833A-CC84067DF737}.Release|Any CPU.ActiveCfg = Release|Any CPU + {68FDB266-6AC3-4418-833A-CC84067DF737}.Release|Any CPU.Build.0 = Release|Any CPU + {297E5DAF-9B29-4249-8DD1-85A6012E58BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {297E5DAF-9B29-4249-8DD1-85A6012E58BE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {297E5DAF-9B29-4249-8DD1-85A6012E58BE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {297E5DAF-9B29-4249-8DD1-85A6012E58BE}.Release|Any CPU.Build.0 = Release|Any CPU + {CA332462-763C-4AF7-9FEB-B45122A93514}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {CA332462-763C-4AF7-9FEB-B45122A93514}.Debug|Any CPU.Build.0 = Debug|Any CPU + {CA332462-763C-4AF7-9FEB-B45122A93514}.Release|Any CPU.ActiveCfg = Release|Any CPU + {CA332462-763C-4AF7-9FEB-B45122A93514}.Release|Any CPU.Build.0 = Release|Any CPU + {F816A557-0B64-435E-BD66-25182664E4D4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F816A557-0B64-435E-BD66-25182664E4D4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F816A557-0B64-435E-BD66-25182664E4D4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F816A557-0B64-435E-BD66-25182664E4D4}.Release|Any CPU.Build.0 = Release|Any CPU + {35F68E59-3F8C-495C-A10F-780FD9942384}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35F68E59-3F8C-495C-A10F-780FD9942384}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35F68E59-3F8C-495C-A10F-780FD9942384}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35F68E59-3F8C-495C-A10F-780FD9942384}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -302,6 +364,17 @@ Global {C836AEFC-1E29-4901-B3EE-A06296EC94EE} = {2A107B89-703B-4FC1-B7CA-1EE63FC05110} {75B2418D-22F1-447A-B95C-49233B864D31} = {2A107B89-703B-4FC1-B7CA-1EE63FC05110} {973BD18A-86A0-4F55-A624-6F66519B12A6} = {3788051A-9941-4C44-9E4C-BC073F69DD2F} + {4792F5F1-BDD8-431B-828E-0035791CF035} = {FAFF233D-FB99-4FA7-A412-E58ED97CE3C2} + {29D705AE-0C96-433D-ACF5-0A37B095DF28} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {DCEF54FB-E227-4992-8FDF-4BC7AAD69154} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {C2647AED-0576-4C04-821D-18D3C1086EE4} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {78F48946-B740-4D5F-9BD9-7F91B1AC3C73} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {435207BC-6ABF-4E71-8E9F-E5D12228A5CF} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {68FDB266-6AC3-4418-833A-CC84067DF737} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {297E5DAF-9B29-4249-8DD1-85A6012E58BE} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {CA332462-763C-4AF7-9FEB-B45122A93514} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {F816A557-0B64-435E-BD66-25182664E4D4} = {4792F5F1-BDD8-431B-828E-0035791CF035} + {35F68E59-3F8C-495C-A10F-780FD9942384} = {4792F5F1-BDD8-431B-828E-0035791CF035} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {65CAA504-F611-4706-99C4-A400709A871D} diff --git a/src/V1/ServiceBricks.Cache.AzureDataTables/Rule/CacheAzureDataTablesModuleAddRule.cs b/src/V1/ServiceBricks.Cache.AzureDataTables/Rule/CacheAzureDataTablesModuleAddRule.cs index 12b7fbd..a604d5a 100644 --- a/src/V1/ServiceBricks.Cache.AzureDataTables/Rule/CacheAzureDataTablesModuleAddRule.cs +++ b/src/V1/ServiceBricks.Cache.AzureDataTables/Rule/CacheAzureDataTablesModuleAddRule.cs @@ -69,6 +69,7 @@ public override IResponse ExecuteRule(IBusinessRuleContext context) ApiConcurrencyByUpdateDateRule.Register(BusinessRuleRegistry.Instance); CacheDataCreateRule.Register(BusinessRuleRegistry.Instance); DomainQueryPropertyRenameRule.Register(BusinessRuleRegistry.Instance, "StorageKey", "PartitionKey"); + DomainQueryPropertyRenameRule.Register(BusinessRuleRegistry.Instance, "CacheKey", "PartitionKey"); return response; } diff --git a/src/V1/ServiceBricks.Cache.AzureDataTables/ServiceBricks.Cache.AzureDataTables.csproj b/src/V1/ServiceBricks.Cache.AzureDataTables/ServiceBricks.Cache.AzureDataTables.csproj index 061985d..3e3fb71 100644 --- a/src/V1/ServiceBricks.Cache.AzureDataTables/ServiceBricks.Cache.AzureDataTables.csproj +++ b/src/V1/ServiceBricks.Cache.AzureDataTables/ServiceBricks.Cache.AzureDataTables.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.AzureDataTables ServiceBricks.Cache.AzureDataTables @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -36,6 +36,6 @@ - + diff --git a/src/V1/ServiceBricks.Cache.Cosmos/Model/CacheCosmosContext.cs b/src/V1/ServiceBricks.Cache.Cosmos/Model/CacheCosmosContext.cs index 64e1917..c6397d8 100644 --- a/src/V1/ServiceBricks.Cache.Cosmos/Model/CacheCosmosContext.cs +++ b/src/V1/ServiceBricks.Cache.Cosmos/Model/CacheCosmosContext.cs @@ -1,5 +1,6 @@ using Microsoft.EntityFrameworkCore; using ServiceBricks.Cache.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Diagnostics; namespace ServiceBricks.Cache.Cosmos { @@ -34,9 +35,24 @@ protected override void OnModelCreating(ModelBuilder builder) // AI: Create the model for each table builder.Entity().HasKey(key => key.CacheKey); - builder.Entity().HasPartitionKey(key => key.CacheKey); - builder.Entity().HasIndex(key => new { key.ExpirationDate }); // For background process builder.Entity().ToContainer(CacheCosmosConstants.GetContainerName(nameof(CacheData))); +#if NET9_0 +#else + builder.Entity().HasPartitionKey(key => key.CacheKey); +#endif + } + + /// + /// OnConfiguring + /// + /// + protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) + { +#if NET9_0 + optionsBuilder.ConfigureWarnings(w => w.Ignore(CosmosEventId.SyncNotSupported)); +#endif + + base.OnConfiguring(optionsBuilder); } /// diff --git a/src/V1/ServiceBricks.Cache.Cosmos/ServiceBricks.Cache.Cosmos.csproj b/src/V1/ServiceBricks.Cache.Cosmos/ServiceBricks.Cache.Cosmos.csproj index 06a9216..0e7a1b6 100644 --- a/src/V1/ServiceBricks.Cache.Cosmos/ServiceBricks.Cache.Cosmos.csproj +++ b/src/V1/ServiceBricks.Cache.Cosmos/ServiceBricks.Cache.Cosmos.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.Cosmos ServiceBricks.Cache.Cosmos @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -36,7 +36,7 @@ - + diff --git a/src/V1/ServiceBricks.Cache.EntityFrameworkCore/ServiceBricks.Cache.EntityFrameworkCore.csproj b/src/V1/ServiceBricks.Cache.EntityFrameworkCore/ServiceBricks.Cache.EntityFrameworkCore.csproj index 7d3ce4c..574be07 100644 --- a/src/V1/ServiceBricks.Cache.EntityFrameworkCore/ServiceBricks.Cache.EntityFrameworkCore.csproj +++ b/src/V1/ServiceBricks.Cache.EntityFrameworkCore/ServiceBricks.Cache.EntityFrameworkCore.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.EntityFrameworkCore ServiceBricks.Cache.EntityFrameworkCore @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -36,6 +36,6 @@ - + diff --git a/src/V1/ServiceBricks.Cache.InMemory/ServiceBricks.Cache.InMemory.csproj b/src/V1/ServiceBricks.Cache.InMemory/ServiceBricks.Cache.InMemory.csproj index d2988c0..370bda7 100644 --- a/src/V1/ServiceBricks.Cache.InMemory/ServiceBricks.Cache.InMemory.csproj +++ b/src/V1/ServiceBricks.Cache.InMemory/ServiceBricks.Cache.InMemory.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.InMemory ServiceBricks.Cache.InMemory @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -36,7 +36,7 @@ - + diff --git a/src/V1/ServiceBricks.Cache.Microservice/ServiceBricks.Cache.Microservice.csproj b/src/V1/ServiceBricks.Cache.Microservice/ServiceBricks.Cache.Microservice.csproj index 8f802d9..233239b 100644 --- a/src/V1/ServiceBricks.Cache.Microservice/ServiceBricks.Cache.Microservice.csproj +++ b/src/V1/ServiceBricks.Cache.Microservice/ServiceBricks.Cache.Microservice.csproj @@ -1,7 +1,7 @@  - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.Microservice ServiceBricks.Cache.Microservice @@ -9,9 +9,9 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable - Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. + Copyright © 2025 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com logo.png servicebricks;cache;microservice @@ -34,7 +34,7 @@ - + diff --git a/src/V1/ServiceBricks.Cache.MongoDb/Domain/CacheData.cs b/src/V1/ServiceBricks.Cache.MongoDb/Domain/CacheData.cs index 4e8f404..df4a5e5 100644 --- a/src/V1/ServiceBricks.Cache.MongoDb/Domain/CacheData.cs +++ b/src/V1/ServiceBricks.Cache.MongoDb/Domain/CacheData.cs @@ -14,7 +14,7 @@ public partial class CacheData : MongoDbDomainObject, IDpCreateDate, /// Internal Primary Key. /// [BsonId] - [BsonRepresentation(BsonType.ObjectId)] + [BsonRepresentation(BsonType.String)] public string Id { get; set; } /// diff --git a/src/V1/ServiceBricks.Cache.MongoDb/Mapping/CacheDataMappingProfile.cs b/src/V1/ServiceBricks.Cache.MongoDb/Mapping/CacheDataMappingProfile.cs index 230be29..cb587c2 100644 --- a/src/V1/ServiceBricks.Cache.MongoDb/Mapping/CacheDataMappingProfile.cs +++ b/src/V1/ServiceBricks.Cache.MongoDb/Mapping/CacheDataMappingProfile.cs @@ -15,7 +15,8 @@ public CacheDataMappingProfile() // AI: Map the CacheDataDto to the CacheData CreateMap() .ForMember(x => x.CreateDate, y => y.Ignore()) - .ForMember(x => x.Id, y => y.MapFrom(z => z.StorageKey)); + .ForMember(x => x.Id, y => y.MapFrom(z => string.IsNullOrEmpty(z.CacheKey) ? z.StorageKey : z.CacheKey)) + .ForMember(x => x.CacheKey, y => y.MapFrom(z => string.IsNullOrEmpty(z.CacheKey) ? z.StorageKey : z.CacheKey)); CreateMap() .ForMember(x => x.StorageKey, y => y.MapFrom(z => z.Id)); diff --git a/src/V1/ServiceBricks.Cache.MongoDb/ServiceBricks.Cache.MongoDb.csproj b/src/V1/ServiceBricks.Cache.MongoDb/ServiceBricks.Cache.MongoDb.csproj index a88ff5e..b32fe2e 100644 --- a/src/V1/ServiceBricks.Cache.MongoDb/ServiceBricks.Cache.MongoDb.csproj +++ b/src/V1/ServiceBricks.Cache.MongoDb/ServiceBricks.Cache.MongoDb.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.MongoDb ServiceBricks.Cache.MongoDb @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -36,7 +36,7 @@ - + diff --git a/src/V1/ServiceBricks.Cache.Postgres/ServiceBricks.Cache.Postgres.csproj b/src/V1/ServiceBricks.Cache.Postgres/ServiceBricks.Cache.Postgres.csproj index 73ebd2c..cad71f3 100644 --- a/src/V1/ServiceBricks.Cache.Postgres/ServiceBricks.Cache.Postgres.csproj +++ b/src/V1/ServiceBricks.Cache.Postgres/ServiceBricks.Cache.Postgres.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.Postgres ServiceBricks.Cache.Postgres @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -36,7 +36,7 @@ - + diff --git a/src/V1/ServiceBricks.Cache.SqlServer/ServiceBricks.Cache.SqlServer.csproj b/src/V1/ServiceBricks.Cache.SqlServer/ServiceBricks.Cache.SqlServer.csproj index ac32bbb..f4b49d4 100644 --- a/src/V1/ServiceBricks.Cache.SqlServer/ServiceBricks.Cache.SqlServer.csproj +++ b/src/V1/ServiceBricks.Cache.SqlServer/ServiceBricks.Cache.SqlServer.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.SqlServer ServiceBricks.Cache.SqlServer @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -36,7 +36,7 @@ - + diff --git a/src/V1/ServiceBricks.Cache.Sqlite/ServiceBricks.Cache.Sqlite.csproj b/src/V1/ServiceBricks.Cache.Sqlite/ServiceBricks.Cache.Sqlite.csproj index f64ee84..df7e7ab 100644 --- a/src/V1/ServiceBricks.Cache.Sqlite/ServiceBricks.Cache.Sqlite.csproj +++ b/src/V1/ServiceBricks.Cache.Sqlite/ServiceBricks.Cache.Sqlite.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache.Sqlite ServiceBricks.Cache.Sqlite @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -36,7 +36,7 @@ - + diff --git a/src/V1/ServiceBricks.Cache/ServiceBricks.Cache.csproj b/src/V1/ServiceBricks.Cache/ServiceBricks.Cache.csproj index fc91e66..e5e0ff4 100644 --- a/src/V1/ServiceBricks.Cache/ServiceBricks.Cache.csproj +++ b/src/V1/ServiceBricks.Cache/ServiceBricks.Cache.csproj @@ -1,7 +1,7 @@ - 1.1.3 + 1.2.0 The open source microservices platform. Visit https://ServiceBricks.com to learn more. ServiceBricks.Cache ServiceBricks.Cache @@ -9,7 +9,7 @@ holomodular HoloModular LLC ServiceBricks - net6.0;net7.0;net8.0 + net6.0;net7.0;net8.0;net9.0 disable Copyright © 2024 HoloModular LLC. All Rights Reserved. Visit https://HoloModular.com to learn more. https://ServiceBricks.com @@ -33,7 +33,7 @@ - + diff --git a/src/V1/Tests/MigrationsHost/MigrationsHost.csproj b/src/V1/Tests/MigrationsHost/MigrationsHost.csproj index ed0ce95..8f737a5 100644 --- a/src/V1/Tests/MigrationsHost/MigrationsHost.csproj +++ b/src/V1/Tests/MigrationsHost/MigrationsHost.csproj @@ -26,7 +26,7 @@ - + diff --git a/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet6/ServiceBricks.Cache.AzureDataTables.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet6/ServiceBricks.Cache.AzureDataTables.XunitNet6.csproj index d836c4d..b35ee79 100644 --- a/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet6/ServiceBricks.Cache.AzureDataTables.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet6/ServiceBricks.Cache.AzureDataTables.XunitNet6.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet7/ServiceBricks.Cache.AzureDataTables.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet7/ServiceBricks.Cache.AzureDataTables.XunitNet7.csproj index 80281de..323e380 100644 --- a/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet7/ServiceBricks.Cache.AzureDataTables.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet7/ServiceBricks.Cache.AzureDataTables.XunitNet7.csproj @@ -23,17 +23,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet8/ServiceBricks.Cache.AzureDataTables.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet8/ServiceBricks.Cache.AzureDataTables.XunitNet8.csproj index 2173129..4d6a7d0 100644 --- a/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet8/ServiceBricks.Cache.AzureDataTables.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet8/ServiceBricks.Cache.AzureDataTables.XunitNet8.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet9/ServiceBricks.Cache.AzureDataTables.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet9/ServiceBricks.Cache.AzureDataTables.XunitNet9.csproj new file mode 100644 index 0000000..0bf8c84 --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet9/ServiceBricks.Cache.AzureDataTables.XunitNet9.csproj @@ -0,0 +1,47 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + Always + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.AzureDataTables.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet6/ServiceBricks.Cache.Client.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet6/ServiceBricks.Cache.Client.XunitNet6.csproj index 2fbbff2..6d73ce2 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet6/ServiceBricks.Cache.Client.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet6/ServiceBricks.Cache.Client.XunitNet6.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet7/ServiceBricks.Cache.Client.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet7/ServiceBricks.Cache.Client.XunitNet7.csproj index f9152e7..12541ce 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet7/ServiceBricks.Cache.Client.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet7/ServiceBricks.Cache.Client.XunitNet7.csproj @@ -23,17 +23,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet8/ServiceBricks.Cache.Client.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet8/ServiceBricks.Cache.Client.XunitNet8.csproj index d1693d2..2378ead 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet8/ServiceBricks.Cache.Client.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet8/ServiceBricks.Cache.Client.XunitNet8.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet9/ServiceBricks.Cache.Client.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet9/ServiceBricks.Cache.Client.XunitNet9.csproj new file mode 100644 index 0000000..408c96d --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet9/ServiceBricks.Cache.Client.XunitNet9.csproj @@ -0,0 +1,46 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + Always + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.Client.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet6/ServiceBricks.Cache.Cosmos.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet6/ServiceBricks.Cache.Cosmos.XunitNet6.csproj index e702cda..0ebb884 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet6/ServiceBricks.Cache.Cosmos.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet6/ServiceBricks.Cache.Cosmos.XunitNet6.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet7/ServiceBricks.Cache.Cosmos.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet7/ServiceBricks.Cache.Cosmos.XunitNet7.csproj index 1b4735d..4ce4fb1 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet7/ServiceBricks.Cache.Cosmos.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet7/ServiceBricks.Cache.Cosmos.XunitNet7.csproj @@ -23,17 +23,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet8/ServiceBricks.Cache.Cosmos.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet8/ServiceBricks.Cache.Cosmos.XunitNet8.csproj index fa24def..85adbad 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet8/ServiceBricks.Cache.Cosmos.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet8/ServiceBricks.Cache.Cosmos.XunitNet8.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet9/ServiceBricks.Cache.Cosmos.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet9/ServiceBricks.Cache.Cosmos.XunitNet9.csproj new file mode 100644 index 0000000..a4d83e2 --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet9/ServiceBricks.Cache.Cosmos.XunitNet9.csproj @@ -0,0 +1,47 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + Always + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.Cosmos.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet6/ServiceBricks.Cache.InMemory.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet6/ServiceBricks.Cache.InMemory.XunitNet6.csproj index 97682af..1035151 100644 --- a/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet6/ServiceBricks.Cache.InMemory.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet6/ServiceBricks.Cache.InMemory.XunitNet6.csproj @@ -24,18 +24,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet7/ServiceBricks.Cache.InMemory.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet7/ServiceBricks.Cache.InMemory.XunitNet7.csproj index 4e877b5..32e9b87 100644 --- a/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet7/ServiceBricks.Cache.InMemory.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet7/ServiceBricks.Cache.InMemory.XunitNet7.csproj @@ -25,17 +25,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet8/ServiceBricks.Cache.InMemory.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet8/ServiceBricks.Cache.InMemory.XunitNet8.csproj index a46ea08..2453309 100644 --- a/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet8/ServiceBricks.Cache.InMemory.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet8/ServiceBricks.Cache.InMemory.XunitNet8.csproj @@ -24,18 +24,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet9/ServiceBricks.Cache.InMemory.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet9/ServiceBricks.Cache.InMemory.XunitNet9.csproj new file mode 100644 index 0000000..ed1ea69 --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet9/ServiceBricks.Cache.InMemory.XunitNet9.csproj @@ -0,0 +1,49 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + + + Always + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.InMemory.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet6/ServiceBricks.Cache.MongoDb.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet6/ServiceBricks.Cache.MongoDb.XunitNet6.csproj index fc80732..c595583 100644 --- a/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet6/ServiceBricks.Cache.MongoDb.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet6/ServiceBricks.Cache.MongoDb.XunitNet6.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet7/ServiceBricks.Cache.MongoDb.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet7/ServiceBricks.Cache.MongoDb.XunitNet7.csproj index 8164047..e4f0293 100644 --- a/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet7/ServiceBricks.Cache.MongoDb.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet7/ServiceBricks.Cache.MongoDb.XunitNet7.csproj @@ -23,17 +23,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet8/ServiceBricks.Cache.MongoDb.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet8/ServiceBricks.Cache.MongoDb.XunitNet8.csproj index 3d008c0..aacecdc 100644 --- a/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet8/ServiceBricks.Cache.MongoDb.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet8/ServiceBricks.Cache.MongoDb.XunitNet8.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet9/ServiceBricks.Cache.MongoDb.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet9/ServiceBricks.Cache.MongoDb.XunitNet9.csproj new file mode 100644 index 0000000..228c1a2 --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet9/ServiceBricks.Cache.MongoDb.XunitNet9.csproj @@ -0,0 +1,47 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + Always + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.MongoDb.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet6/ServiceBricks.Cache.Postgres.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet6/ServiceBricks.Cache.Postgres.XunitNet6.csproj index 1ebcc3b..0363c5a 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet6/ServiceBricks.Cache.Postgres.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet6/ServiceBricks.Cache.Postgres.XunitNet6.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet7/ServiceBricks.Cache.Postgres.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet7/ServiceBricks.Cache.Postgres.XunitNet7.csproj index 4b28f47..32191a3 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet7/ServiceBricks.Cache.Postgres.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet7/ServiceBricks.Cache.Postgres.XunitNet7.csproj @@ -23,17 +23,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet8/ServiceBricks.Cache.Postgres.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet8/ServiceBricks.Cache.Postgres.XunitNet8.csproj index f848b17..697c3da 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet8/ServiceBricks.Cache.Postgres.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet8/ServiceBricks.Cache.Postgres.XunitNet8.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet9/ServiceBricks.Cache.Postgres.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet9/ServiceBricks.Cache.Postgres.XunitNet9.csproj new file mode 100644 index 0000000..661f217 --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet9/ServiceBricks.Cache.Postgres.XunitNet9.csproj @@ -0,0 +1,47 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + Always + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.Postgres.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet6/ServiceBricks.Cache.SqlServer.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet6/ServiceBricks.Cache.SqlServer.XunitNet6.csproj index 702d4a5..4c8e4ac 100644 --- a/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet6/ServiceBricks.Cache.SqlServer.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet6/ServiceBricks.Cache.SqlServer.XunitNet6.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet7/ServiceBricks.Cache.SqlServer.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet7/ServiceBricks.Cache.SqlServer.XunitNet7.csproj index ae03fc0..1559f97 100644 --- a/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet7/ServiceBricks.Cache.SqlServer.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet7/ServiceBricks.Cache.SqlServer.XunitNet7.csproj @@ -23,17 +23,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet8/ServiceBricks.Cache.SqlServer.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet8/ServiceBricks.Cache.SqlServer.XunitNet8.csproj index 4b0e61b..1bd6556 100644 --- a/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet8/ServiceBricks.Cache.SqlServer.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet8/ServiceBricks.Cache.SqlServer.XunitNet8.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet9/ServiceBricks.Cache.SqlServer.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet9/ServiceBricks.Cache.SqlServer.XunitNet9.csproj new file mode 100644 index 0000000..0697e76 --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet9/ServiceBricks.Cache.SqlServer.XunitNet9.csproj @@ -0,0 +1,47 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + Always + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.SqlServer.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet6/ServiceBricks.Cache.Sqlite.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet6/ServiceBricks.Cache.Sqlite.XunitNet6.csproj index 6ab3769..ec89e7b 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet6/ServiceBricks.Cache.Sqlite.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet6/ServiceBricks.Cache.Sqlite.XunitNet6.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet7/ServiceBricks.Cache.Sqlite.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet7/ServiceBricks.Cache.Sqlite.XunitNet7.csproj index bdc564d..9d7a5f1 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet7/ServiceBricks.Cache.Sqlite.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet7/ServiceBricks.Cache.Sqlite.XunitNet7.csproj @@ -23,17 +23,17 @@ - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet8/ServiceBricks.Cache.Sqlite.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet8/ServiceBricks.Cache.Sqlite.XunitNet8.csproj index 5ab3ee1..22c8952 100644 --- a/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet8/ServiceBricks.Cache.Sqlite.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet8/ServiceBricks.Cache.Sqlite.XunitNet8.csproj @@ -22,18 +22,18 @@ - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet9/ServiceBricks.Cache.Sqlite.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet9/ServiceBricks.Cache.Sqlite.XunitNet9.csproj new file mode 100644 index 0000000..3146c9a --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet9/ServiceBricks.Cache.Sqlite.XunitNet9.csproj @@ -0,0 +1,47 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + Always + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.Sqlite.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/ServiceBricks.Cache.XunitNet6/ServiceBricks.Cache.XunitNet6.csproj b/src/V1/Tests/ServiceBricks.Cache.XunitNet6/ServiceBricks.Cache.XunitNet6.csproj index ca7906b..18e4720 100644 --- a/src/V1/Tests/ServiceBricks.Cache.XunitNet6/ServiceBricks.Cache.XunitNet6.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.XunitNet6/ServiceBricks.Cache.XunitNet6.csproj @@ -15,22 +15,22 @@ - + - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.XunitNet7/ServiceBricks.Cache.XunitNet7.csproj b/src/V1/Tests/ServiceBricks.Cache.XunitNet7/ServiceBricks.Cache.XunitNet7.csproj index c1bbd8d..2664387 100644 --- a/src/V1/Tests/ServiceBricks.Cache.XunitNet7/ServiceBricks.Cache.XunitNet7.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.XunitNet7/ServiceBricks.Cache.XunitNet7.csproj @@ -15,22 +15,22 @@ - + - - - + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.XunitNet8/ServiceBricks.Cache.XunitNet8.csproj b/src/V1/Tests/ServiceBricks.Cache.XunitNet8/ServiceBricks.Cache.XunitNet8.csproj index a49aea4..d69109a 100644 --- a/src/V1/Tests/ServiceBricks.Cache.XunitNet8/ServiceBricks.Cache.XunitNet8.csproj +++ b/src/V1/Tests/ServiceBricks.Cache.XunitNet8/ServiceBricks.Cache.XunitNet8.csproj @@ -15,22 +15,22 @@ - + - - - - + + + + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/V1/Tests/ServiceBricks.Cache.XunitNet9/ServiceBricks.Cache.XunitNet9.csproj b/src/V1/Tests/ServiceBricks.Cache.XunitNet9/ServiceBricks.Cache.XunitNet9.csproj new file mode 100644 index 0000000..5d29857 --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.XunitNet9/ServiceBricks.Cache.XunitNet9.csproj @@ -0,0 +1,43 @@ + + + + net9.0 + enable + disable + + false + true + + + + + + + + + + + + + + + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + diff --git a/src/V1/Tests/ServiceBricks.Cache.XunitNet9/Usings.cs b/src/V1/Tests/ServiceBricks.Cache.XunitNet9/Usings.cs new file mode 100644 index 0000000..8c927eb --- /dev/null +++ b/src/V1/Tests/ServiceBricks.Cache.XunitNet9/Usings.cs @@ -0,0 +1 @@ +global using Xunit; \ No newline at end of file diff --git a/src/V1/Tests/TestFiles/StartupAzureDataTables.cs b/src/V1/Tests/TestFiles/StartupAzureDataTables.cs index 56e68aa..a3e919e 100644 --- a/src/V1/Tests/TestFiles/StartupAzureDataTables.cs +++ b/src/V1/Tests/TestFiles/StartupAzureDataTables.cs @@ -18,6 +18,7 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) services.AddSingleton(Configuration); services.AddServiceBricks(Configuration); services.AddServiceBricksCacheAzureDataTables(Configuration); + services.AddServiceBricksComplete(Configuration); // Remove all background tasks/timers for unit testing var logtimer = services.Where(x => x.ImplementationType == typeof(CacheExpirationTimer)).FirstOrDefault(); @@ -26,8 +27,6 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) // Register TestManager services.AddScoped, CacheDataTestManager>(); - - services.AddServiceBricksComplete(Configuration); } public virtual void Configure(IApplicationBuilder app) diff --git a/src/V1/Tests/TestFiles/StartupCosmos.cs b/src/V1/Tests/TestFiles/StartupCosmos.cs index 2a4fc7f..c26ba3e 100644 --- a/src/V1/Tests/TestFiles/StartupCosmos.cs +++ b/src/V1/Tests/TestFiles/StartupCosmos.cs @@ -18,6 +18,7 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) services.AddSingleton(Configuration); services.AddServiceBricks(Configuration); services.AddServiceBricksCacheCosmos(Configuration); + services.AddServiceBricksComplete(Configuration); // Remove all background tasks/timers for unit testing var logtimer = services.Where(x => x.ImplementationType == typeof(CacheExpirationTimer)).FirstOrDefault(); @@ -26,8 +27,6 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) // Register TestManager services.AddScoped, CacheDataTestManager>(); - - services.AddServiceBricksComplete(Configuration); } public virtual void Configure(IApplicationBuilder app) diff --git a/src/V1/Tests/TestFiles/StartupInMemory.cs b/src/V1/Tests/TestFiles/StartupInMemory.cs index b2364ea..648d384 100644 --- a/src/V1/Tests/TestFiles/StartupInMemory.cs +++ b/src/V1/Tests/TestFiles/StartupInMemory.cs @@ -18,6 +18,7 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) services.AddSingleton(Configuration); services.AddServiceBricks(Configuration); services.AddServiceBricksCacheInMemory(Configuration); + services.AddServiceBricksComplete(Configuration); // Remove all background tasks/timers for unit testing var logtimer = services.Where(x => x.ImplementationType == typeof(CacheExpirationTimer)).FirstOrDefault(); @@ -26,8 +27,6 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) // Register TestManager services.AddScoped, CacheDataTestManager>(); - - services.AddServiceBricksComplete(Configuration); } public virtual void Configure(IApplicationBuilder app) diff --git a/src/V1/Tests/TestFiles/StartupMongoDb.cs b/src/V1/Tests/TestFiles/StartupMongoDb.cs index 71e0e1a..c150327 100644 --- a/src/V1/Tests/TestFiles/StartupMongoDb.cs +++ b/src/V1/Tests/TestFiles/StartupMongoDb.cs @@ -18,6 +18,7 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) services.AddSingleton(Configuration); services.AddServiceBricks(Configuration); services.AddServiceBricksCacheMongoDb(Configuration); + services.AddServiceBricksComplete(Configuration); // Remove all background tasks/timers for unit testing var logtimer = services.Where(x => x.ImplementationType == typeof(CacheExpirationTimer)).FirstOrDefault(); @@ -26,8 +27,6 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) // Register TestManager services.AddScoped, MongoDbCacheDataTestManager>(); - - services.AddServiceBricksComplete(Configuration); } public virtual void Configure(IApplicationBuilder app) diff --git a/src/V1/Tests/TestFiles/StartupPostgres.cs b/src/V1/Tests/TestFiles/StartupPostgres.cs index b1d6a0f..0aa9b0e 100644 --- a/src/V1/Tests/TestFiles/StartupPostgres.cs +++ b/src/V1/Tests/TestFiles/StartupPostgres.cs @@ -18,6 +18,7 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) services.AddSingleton(Configuration); services.AddServiceBricks(Configuration); services.AddServiceBricksCachePostgres(Configuration); + services.AddServiceBricksComplete(Configuration); // Remove all background tasks/timers for unit testing var timer = services.Where(x => x.ImplementationType == typeof(CacheExpirationTimer)).FirstOrDefault(); @@ -26,8 +27,6 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) // Register TestManager services.AddScoped, CacheDataTestManagerPostgres>(); - - services.AddServiceBricksComplete(Configuration); } public virtual void Configure(IApplicationBuilder app) diff --git a/src/V1/Tests/TestFiles/StartupSqlServer.cs b/src/V1/Tests/TestFiles/StartupSqlServer.cs index 8b7dcfa..3818835 100644 --- a/src/V1/Tests/TestFiles/StartupSqlServer.cs +++ b/src/V1/Tests/TestFiles/StartupSqlServer.cs @@ -18,6 +18,7 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) services.AddSingleton(Configuration); services.AddServiceBricks(Configuration); services.AddServiceBricksCacheSqlServer(Configuration); + services.AddServiceBricksComplete(Configuration); // Remove all background tasks/timers for unit testing var timer = services.Where(x => x.ImplementationType == typeof(CacheExpirationTimer)).FirstOrDefault(); @@ -26,8 +27,6 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) // Register TestManager services.AddScoped, CacheDataTestManager>(); - - services.AddServiceBricksComplete(Configuration); } public virtual void Configure(IApplicationBuilder app) diff --git a/src/V1/Tests/TestFiles/StartupSqlite.cs b/src/V1/Tests/TestFiles/StartupSqlite.cs index 725fee9..b839f92 100644 --- a/src/V1/Tests/TestFiles/StartupSqlite.cs +++ b/src/V1/Tests/TestFiles/StartupSqlite.cs @@ -18,6 +18,7 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) services.AddSingleton(Configuration); services.AddServiceBricks(Configuration); services.AddServiceBricksCacheSqlite(Configuration); + services.AddServiceBricksComplete(Configuration); // Remove all background tasks/timers for unit testing var logtimer = services.Where(x => x.ImplementationType == typeof(CacheExpirationTimer)).FirstOrDefault(); @@ -26,8 +27,6 @@ public virtual void ConfigureDevelopmentServices(IServiceCollection services) // Register TestManager services.AddScoped, CacheDataTestManager>(); - - services.AddServiceBricksComplete(Configuration); } public virtual void Configure(IApplicationBuilder app) diff --git a/src/V1/Tests/WebAppNet6/WebAppNet6.csproj b/src/V1/Tests/WebAppNet6/WebAppNet6.csproj index 8be076f..046eaf2 100644 --- a/src/V1/Tests/WebAppNet6/WebAppNet6.csproj +++ b/src/V1/Tests/WebAppNet6/WebAppNet6.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/src/V1/Tests/WebAppNet7/WebAppNet7.csproj b/src/V1/Tests/WebAppNet7/WebAppNet7.csproj index 40fb136..5ac2e0e 100644 --- a/src/V1/Tests/WebAppNet7/WebAppNet7.csproj +++ b/src/V1/Tests/WebAppNet7/WebAppNet7.csproj @@ -16,7 +16,7 @@ - + diff --git a/src/V1/Tests/WebAppNet8/WebAppNet8.csproj b/src/V1/Tests/WebAppNet8/WebAppNet8.csproj index 618987f..cd1e8f6 100644 --- a/src/V1/Tests/WebAppNet8/WebAppNet8.csproj +++ b/src/V1/Tests/WebAppNet8/WebAppNet8.csproj @@ -15,8 +15,8 @@ - - + + diff --git a/src/V1/Tests/WebAppNet9/Controllers/HomeController.cs b/src/V1/Tests/WebAppNet9/Controllers/HomeController.cs new file mode 100644 index 0000000..7318e5a --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Controllers/HomeController.cs @@ -0,0 +1,34 @@ +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; + +//using ServiceBricks.Security; +using WebApp.ViewModel.Home; + +namespace WebApp.Controllers +{ + [AllowAnonymous] + [Route("")] + [Route("Home")] + public class HomeController : Controller + { + [HttpGet] + [Route("")] + [Route("Index")] + public IActionResult Index() + { + HomeViewModel model = new HomeViewModel(); + return View(model); + } + + [HttpGet] + [Route("Error")] + public IActionResult Error(string message = null) + { + var model = new ErrorViewModel() + { + Message = message + }; + return View("Error", model); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Controllers/api/v1/ExampleController.cs b/src/V1/Tests/WebAppNet9/Controllers/api/v1/ExampleController.cs new file mode 100644 index 0000000..c73c751 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Controllers/api/v1/ExampleController.cs @@ -0,0 +1,35 @@ +using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System.Net; + +namespace WebApp.Controllers.api.v1 +{ + [AllowAnonymous] + [ApiController] + [ApiVersion("1.0")] + [Produces("application/json", "application/problem+json")] + [Route("api/v{version:apiVersion}/[controller]")] + public class ExampleController : ControllerBase + { + [HttpGet] + [ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)] + [ProducesResponseType(typeof(List), (int)HttpStatusCode.OK)] + [Route("GetFiveNumbers")] + public IActionResult GetFiveNumbers() + { + return Ok( + Enumerable.Range(1, 5).Select(x => + Random.Shared.Next(0, 100)).ToList()); + } + + [HttpPost] + [ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)] + [ProducesResponseType(typeof(string), (int)HttpStatusCode.OK)] + [Route("ThrowNotSupportedException")] + public IActionResult ThrowNotSupportedException() + { + throw new NotSupportedException(nameof(ThrowNotSupportedException)); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Controllers/api/v2/ExampleController.cs b/src/V1/Tests/WebAppNet9/Controllers/api/v2/ExampleController.cs new file mode 100644 index 0000000..19c032a --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Controllers/api/v2/ExampleController.cs @@ -0,0 +1,26 @@ +using Asp.Versioning; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using System.Net; + +namespace WebApp.Controllers.api.v2 +{ + [AllowAnonymous] + [ApiController] + [ApiVersion("2.0")] + [Produces("application/json", "application/problem+json")] + [Route("api/v{version:apiVersion}/[controller]")] + public class ExampleController : v1.ExampleController + { + [HttpGet] + [ProducesResponseType(typeof(ProblemDetails), (int)HttpStatusCode.InternalServerError)] + [ProducesResponseType(typeof(List), (int)HttpStatusCode.OK)] + [Route("GetTenNumbers")] + public IActionResult GetTenNumbers() + { + return Ok( + Enumerable.Range(1, 10).Select(x => + Random.Shared.Next(0, 100)).ToList()); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Extensions/ApplicationBuilderExtensions.cs b/src/V1/Tests/WebAppNet9/Extensions/ApplicationBuilderExtensions.cs new file mode 100644 index 0000000..fe3de50 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Extensions/ApplicationBuilderExtensions.cs @@ -0,0 +1,52 @@ +using ServiceBricks; + +//using ServiceBricks.Logging; + +namespace WebApp.Extensions +{ + public static class ApplicationBuilderExtensions + { + private static IApplicationBuilder RegisterMiddleware(this IApplicationBuilder app) + { + //app.UseMiddleware(); + //app.UseMiddleware(); + app.UseMiddleware(); + return app; + } + + public static IApplicationBuilder StartCustomWebsite(this IApplicationBuilder app, IWebHostEnvironment env) + { + if (!env.IsDevelopment()) + app.UseHsts(); + + app.UseHttpsRedirection(); + app.UseStaticFiles(); + app.UseRouting(); + app.UseCors(); + app.UseAuthentication(); + app.UseAuthorization(); + + // Register Middleware after UseAuth() so user context is available + app.RegisterMiddleware(); + + app.UseEndpoints(endpoints => + { + endpoints.MapDefaultControllerRoute(); + endpoints.MapControllers(); + endpoints.MapRazorPages(); + }); + + if (env.IsDevelopment()) + { + app.UseSwagger(); + app.UseSwaggerUI(x => + { + x.SwaggerEndpoint("/swagger/v1/swagger.json", "API v1"); + x.SwaggerEndpoint("/swagger/v2/swagger.json", "API v2"); + }); + } + + return app; + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Extensions/ServiceCollectionExtensions.cs b/src/V1/Tests/WebAppNet9/Extensions/ServiceCollectionExtensions.cs new file mode 100644 index 0000000..ad894ee --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Extensions/ServiceCollectionExtensions.cs @@ -0,0 +1,70 @@ +using Asp.Versioning; +using Microsoft.OpenApi.Models; +using ServiceBricks; +using WebApp.Model; + +namespace WebApp.Extensions + +{ + public static class ServiceCollectionExtensions + { + public static IServiceCollection AddCustomWebsite(this IServiceCollection services, IConfiguration Configuration) + { + services.AddControllers(); + services.AddRazorPages(); + services.AddControllersWithViews().AddRazorRuntimeCompilation(); + services.AddCors(); + + // Add Authorization + services.AddAuthorization(options => + { + //Add Built-in Security Policies + options.AddPolicy(ServiceBricksConstants.SECURITY_POLICY_ADMIN, policy => + policy.RequireAssertion(context => true)); + + options.AddPolicy(ServiceBricksConstants.SECURITY_POLICY_USER, policy => + policy.RequireAssertion(context => true)); + }); + + services.AddMvc(); + + services.AddCustomSwagger(Configuration); + + return services; + } + + public static IServiceCollection AddCustomSwagger(this IServiceCollection services, IConfiguration configuration) + { + services.AddEndpointsApiExplorer(); + var apiVersioningBuilder = services.AddApiVersioning(options => + { + options.ApiVersionReader = new MediaTypeApiVersionReader(); + options.AssumeDefaultVersionWhenUnspecified = true; + options.DefaultApiVersion = new ApiVersion(1, 0); + options.ReportApiVersions = true; + }); + apiVersioningBuilder.AddApiExplorer(options => + { + options.GroupNameFormat = "'v'VVV"; + options.SubstituteApiVersionInUrl = true; + }); + services.AddSwaggerGen(options => + { + options.ResolveConflictingActions(descriptions => + { + return descriptions.First(); + }); + options.CustomSchemaIds(x => x.FullName); + options.SwaggerDoc("v1", new OpenApiInfo { Title = "API v1", Version = "1.0" }); + options.SwaggerDoc("v2", new OpenApiInfo { Title = "API v2", Version = "2.0" }); + options.OperationFilter(); + options.DocumentFilter(); + options.DocInclusionPredicate((docName, apiDesc) => + { + return docName == apiDesc.GroupName; + }); + }); + return services; + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Mapping/ProblemDetailsProfile.cs b/src/V1/Tests/WebAppNet9/Mapping/ProblemDetailsProfile.cs new file mode 100644 index 0000000..28e268e --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Mapping/ProblemDetailsProfile.cs @@ -0,0 +1,21 @@ +using AutoMapper; +using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json; +using System.Net; + +namespace WebApp.Mapping +{ + public class ProblemDetailsProfile : Profile + { + public ProblemDetailsProfile() + { + CreateMap() + .ForMember(x => x.Detail, y => y.MapFrom(z => JsonConvert.SerializeObject(z))) + .ForMember(x => x.Status, y => y.MapFrom(z => (int)HttpStatusCode.InternalServerError)) + .ForMember(x => x.Type, y => y.MapFrom(z => z.GetType().FullName)) + .ForMember(x => x.Title, y => y.MapFrom(z => z.Message)) + .ForMember(x => x.Instance, y => y.Ignore()) + .ForMember(x => x.Extensions, y => y.Ignore()); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Model/SwaggerRemoveVersionOperationFilter.cs b/src/V1/Tests/WebAppNet9/Model/SwaggerRemoveVersionOperationFilter.cs new file mode 100644 index 0000000..8b56084 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Model/SwaggerRemoveVersionOperationFilter.cs @@ -0,0 +1,15 @@ +using Microsoft.OpenApi.Models; +using Swashbuckle.AspNetCore.SwaggerGen; + +namespace WebApp.Model +{ + public class SwaggerRemoveVersionOperationFilter : IOperationFilter + { + public void Apply(OpenApiOperation operation, OperationFilterContext context) + { + var version = operation.Parameters.Where(x => x.Name == "version").FirstOrDefault(); + if (version != null) + operation.Parameters.Remove(version); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Model/SwaggerReplaceVersionDocumentFilter.cs b/src/V1/Tests/WebAppNet9/Model/SwaggerReplaceVersionDocumentFilter.cs new file mode 100644 index 0000000..f5fc285 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Model/SwaggerReplaceVersionDocumentFilter.cs @@ -0,0 +1,16 @@ +using Microsoft.OpenApi.Models; +using Swashbuckle.AspNetCore.SwaggerGen; + +namespace WebApp.Model +{ + public class SwaggerReplaceVersionDocumentFilter : IDocumentFilter + { + public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context) + { + var paths = new OpenApiPaths(); + foreach (var path in swaggerDoc.Paths) + paths.Add(path.Key.Replace("{version}", swaggerDoc.Info.Version), path.Value); + swaggerDoc.Paths = paths; + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Model/WebAppModule.cs b/src/V1/Tests/WebAppNet9/Model/WebAppModule.cs new file mode 100644 index 0000000..0e928d2 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Model/WebAppModule.cs @@ -0,0 +1,15 @@ +using System.Reflection; + +namespace WebApp.Model +{ + public class WebAppModule : ServiceBricks.Module + { + public WebAppModule() + { + AutomapperAssemblies = new List() + { + typeof(WebAppModule).Assembly + }; + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Pages/Shared/_FooterPartial.cshtml b/src/V1/Tests/WebAppNet9/Pages/Shared/_FooterPartial.cshtml new file mode 100644 index 0000000..193eda9 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Pages/Shared/_FooterPartial.cshtml @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Pages/Shared/_HeaderPartial.cshtml b/src/V1/Tests/WebAppNet9/Pages/Shared/_HeaderPartial.cshtml new file mode 100644 index 0000000..8ff9033 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Pages/Shared/_HeaderPartial.cshtml @@ -0,0 +1,13 @@ +
+
+
+ ServiceBricks Logo +
+
+ Web API Starter Application +
+
+ +
+
+
\ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Pages/Shared/_Layout.cshtml b/src/V1/Tests/WebAppNet9/Pages/Shared/_Layout.cshtml new file mode 100644 index 0000000..06151cd --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Pages/Shared/_Layout.cshtml @@ -0,0 +1,44 @@ + + + + + + + @ViewData["Title"] + + + + + + + + + + + + + + + @RenderSection("Head", required: false) + + + + + + +
+ + @RenderBody() +
+ + + + + + + + + @RenderSection("Scripts", required: false) + + + diff --git a/src/V1/Tests/WebAppNet9/Pages/_ViewImports.cshtml b/src/V1/Tests/WebAppNet9/Pages/_ViewImports.cshtml new file mode 100644 index 0000000..8179c16 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Pages/_ViewImports.cshtml @@ -0,0 +1,3 @@ +@using WebApp +@namespace WebApp.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers diff --git a/src/V1/Tests/WebAppNet9/Pages/_ViewStart.cshtml b/src/V1/Tests/WebAppNet9/Pages/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Pages/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/src/V1/Tests/WebAppNet9/Program.cs b/src/V1/Tests/WebAppNet9/Program.cs new file mode 100644 index 0000000..aad8fb3 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Program.cs @@ -0,0 +1,35 @@ +using ServiceBricks; + +//using ServiceBricks.Logging; + +namespace WebApp +{ + public class Program + { + public static void Main(string[] args) + { + CreateHostBuilder(args).Build().Run(); + } + + public static IHostBuilder CreateHostBuilder(string[] args) + { + return Host.CreateDefaultBuilder(args) + .UseContentRoot(Directory.GetCurrentDirectory()) + .ConfigureAppConfiguration((hostingContext, config) => + { + config.AddAppSettingsConfig(); + }) + .ConfigureLogging((hostingContext, logging) => + { + logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging")); + logging.AddConsole(); + logging.AddDebug(); + //logging.AddServiceBricksLogging(); + }) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Properties/launchSettings.json b/src/V1/Tests/WebAppNet9/Properties/launchSettings.json new file mode 100644 index 0000000..3ca25f7 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Properties/launchSettings.json @@ -0,0 +1,29 @@ +{ + "$schema": "https://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:57000", + "sslPort": 47000 + } + }, + "profiles": { + "WebApp": { + "commandName": "Project", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "applicationUrl": "https://localhost:7000;http://localhost:6000", + "dotnetRunMessages": true + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_CookiesConsentPartial.es.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_CookiesConsentPartial.es.resx new file mode 100644 index 0000000..f7c8b6b --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_CookiesConsentPartial.es.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + De acuerdo + + + Necesitamos su consentimiento para permitirnos utilizar cookies y otras tecnologías para almacenar y procesar datos personales de usted en nuestro sitio web. + + + Retirar el consentimiento de las cookies + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_CookiesConsentPartial.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_CookiesConsentPartial.resx new file mode 100644 index 0000000..c80699e --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_CookiesConsentPartial.resx @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + I Agree + + + We need your consent to allow us to use cookies and other technologies to store and process personal data from you on our website. + + + Withdraw Cookies Consent + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_FooterPartial.es.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_FooterPartial.es.resx new file mode 100644 index 0000000..3f233c9 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_FooterPartial.es.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Todos los derechos reservados. + + + Derechos de autor + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_FooterPartial.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_FooterPartial.resx new file mode 100644 index 0000000..78f3dab --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_FooterPartial.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + All Rights Reserved. + + + Copyright + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_HeaderPartial.es.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_HeaderPartial.es.resx new file mode 100644 index 0000000..1800067 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_HeaderPartial.es.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Aplicación Web API Starter + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_HeaderPartial.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_HeaderPartial.resx new file mode 100644 index 0000000..752958d --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_HeaderPartial.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Web API Starter Application + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_LanguagePartial.es.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_LanguagePartial.es.resx new file mode 100644 index 0000000..c748989 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_LanguagePartial.es.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cambio + + + Inglés + + + Idioma + + + Espanol + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_LanguagePartial.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_LanguagePartial.resx new file mode 100644 index 0000000..82ba138 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_LanguagePartial.resx @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Change + + + English + + + Language + + + Spanish + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_Layout.es.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_Layout.es.resx new file mode 100644 index 0000000..a69a24d --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_Layout.es.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Saltar al contenido principal. + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_Layout.resx b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_Layout.resx new file mode 100644 index 0000000..d45686c --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Pages/Shared/_Layout.resx @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Skip to main content. + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Views/Home/Error.es.resx b/src/V1/Tests/WebAppNet9/Resources/Views/Home/Error.es.resx new file mode 100644 index 0000000..8de61c9 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Views/Home/Error.es.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Se ha producido un error al procesar la solicitud. + + + Error + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Views/Home/Error.resx b/src/V1/Tests/WebAppNet9/Resources/Views/Home/Error.resx new file mode 100644 index 0000000..2f02984 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Views/Home/Error.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + An error happened processing your request. + + + Error + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Views/Home/Index.es.resx b/src/V1/Tests/WebAppNet9/Resources/Views/Home/Index.es.resx new file mode 100644 index 0000000..a089355 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Views/Home/Index.es.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Visite nuestro sitio web en: + + + Esta es la aplicación SERVICE BRICK Web API Starter. + + + Ver página de Swagger + + + Bienvenido + + + Puede modificar esta aplicación como desee. + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Views/Home/Index.resx b/src/V1/Tests/WebAppNet9/Resources/Views/Home/Index.resx new file mode 100644 index 0000000..bf417d0 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Views/Home/Index.resx @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Please visit our website at: + + + This is the SERVICE BRICK Web API Starter Application. + + + View Swagger Page + + + Welcome + + + You can modify this application however you like. + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Views/Home/RegisterAdmin.es.resx b/src/V1/Tests/WebAppNet9/Resources/Views/Home/RegisterAdmin.es.resx new file mode 100644 index 0000000..8ac1529 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Views/Home/RegisterAdmin.es.resx @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Se requiere un administrador para administrar este sitio web. + + + Correo electrónico + + + Contraseña + + + Introduzca un correo electrónico y una contraseña a continuación para registrarse como administrador. + + + Registrar admin + + + Enviar + + + Esta es la aplicación SERVICE BRICK Web API Starter. + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Resources/Views/Home/RegisterAdmin.resx b/src/V1/Tests/WebAppNet9/Resources/Views/Home/RegisterAdmin.resx new file mode 100644 index 0000000..0ca6696 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Resources/Views/Home/RegisterAdmin.resx @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + An administrator is required to manage this website. + + + Email + + + Password + + + Please enter an email and password below to register as an Admin. + + + Register Admin + + + Submit + + + This is the SERVICE BRICK Web API Starter Application. + + \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/StartupAzureDataTables.cs b/src/V1/Tests/WebAppNet9/StartupAzureDataTables.cs new file mode 100644 index 0000000..eb441df --- /dev/null +++ b/src/V1/Tests/WebAppNet9/StartupAzureDataTables.cs @@ -0,0 +1,37 @@ +using ServiceBricks; +using ServiceBricks.Cache.AzureDataTables; + +//using ServiceBricks.Logging.InMemory; +using WebApp.Extensions; + +namespace WebApp +{ + public class StartupAzureDataTables + { + public StartupAzureDataTables(IConfiguration configuration) + { + Configuration = configuration; + } + + public virtual IConfiguration Configuration { get; set; } + + public virtual void ConfigureServices(IServiceCollection services) + { + services.AddServiceBricks(Configuration); + //services.AddServiceBricksLoggingInMemory(Configuration); + services.AddServiceBricksCacheAzureDataTables(Configuration); + ModuleRegistry.Instance.Register(new WebApp.Model.WebAppModule()); // Just for automapper registration + services.AddServiceBricksComplete(Configuration); + services.AddCustomWebsite(Configuration); + } + + public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment webHostEnvironment) + { + app.StartServiceBricks(); + app.StartCustomWebsite(webHostEnvironment); + + var logger = app.ApplicationServices.GetRequiredService>(); + logger.LogInformation("Application Started"); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/StartupCosmos.cs b/src/V1/Tests/WebAppNet9/StartupCosmos.cs new file mode 100644 index 0000000..4fd722d --- /dev/null +++ b/src/V1/Tests/WebAppNet9/StartupCosmos.cs @@ -0,0 +1,36 @@ +using ServiceBricks; +using ServiceBricks.Cache.Cosmos; + +//using ServiceBricks.Logging.InMemory; +using WebApp.Extensions; + +namespace WebApp +{ + public class StartupCosmos + { + public StartupCosmos(IConfiguration configuration) + { + Configuration = configuration; + } + + public virtual IConfiguration Configuration { get; set; } + + public virtual void ConfigureServices(IServiceCollection services) + { + services.AddServiceBricks(Configuration); + //services.AddServiceBricksLoggingInMemory(Configuration); + services.AddServiceBricksCacheCosmos(Configuration); + ModuleRegistry.Instance.Register(new WebApp.Model.WebAppModule()); // Just for automapper registration + services.AddServiceBricksComplete(Configuration); + services.AddCustomWebsite(Configuration); + } + + public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment webHostEnvironment) + { + app.StartServiceBricks(); + app.StartCustomWebsite(webHostEnvironment); + var logger = app.ApplicationServices.GetRequiredService>(); + logger.LogInformation("Application Started"); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/StartupInMemory.cs b/src/V1/Tests/WebAppNet9/StartupInMemory.cs new file mode 100644 index 0000000..18da5ca --- /dev/null +++ b/src/V1/Tests/WebAppNet9/StartupInMemory.cs @@ -0,0 +1,36 @@ +using ServiceBricks; +using ServiceBricks.Cache.InMemory; + +//using ServiceBricks.Logging.InMemory; +using WebApp.Extensions; + +namespace WebApp +{ + public class StartupInMemory + { + public StartupInMemory(IConfiguration configuration) + { + Configuration = configuration; + } + + public virtual IConfiguration Configuration { get; set; } + + public virtual void ConfigureServices(IServiceCollection services) + { + services.AddServiceBricks(Configuration); + //services.AddServiceBricksLoggingInMemory(Configuration); + services.AddServiceBricksCacheInMemory(Configuration); + ModuleRegistry.Instance.Register(new WebApp.Model.WebAppModule()); // Just for automapper registration + services.AddServiceBricksComplete(Configuration); + services.AddCustomWebsite(Configuration); + } + + public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment webHostEnvironment) + { + app.StartServiceBricks(); + app.StartCustomWebsite(webHostEnvironment); + var logger = app.ApplicationServices.GetRequiredService>(); + logger.LogInformation("Application Started"); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/StartupMongoDb.cs b/src/V1/Tests/WebAppNet9/StartupMongoDb.cs new file mode 100644 index 0000000..2183389 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/StartupMongoDb.cs @@ -0,0 +1,36 @@ +using ServiceBricks; +using ServiceBricks.Cache.MongoDb; + +//using ServiceBricks.Logging.MongoDb; +using WebApp.Extensions; + +namespace WebApp +{ + public class StartupMongoDb + { + public StartupMongoDb(IConfiguration configuration) + { + Configuration = configuration; + } + + public virtual IConfiguration Configuration { get; set; } + + public virtual void ConfigureServices(IServiceCollection services) + { + services.AddServiceBricks(Configuration); + //services.AddServiceBricksLoggingMongoDb(Configuration); + services.AddServiceBricksCacheMongoDb(Configuration); + ModuleRegistry.Instance.Register(new WebApp.Model.WebAppModule()); // Just for automapper registration + services.AddServiceBricksComplete(Configuration); + services.AddCustomWebsite(Configuration); + } + + public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment webHostEnvironment) + { + app.StartServiceBricks(); + app.StartCustomWebsite(webHostEnvironment); + var logger = app.ApplicationServices.GetRequiredService>(); + logger.LogInformation("Application Started"); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/StartupPostgres.cs b/src/V1/Tests/WebAppNet9/StartupPostgres.cs new file mode 100644 index 0000000..1a95042 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/StartupPostgres.cs @@ -0,0 +1,36 @@ +using ServiceBricks; +using ServiceBricks.Cache.Postgres; + +//using ServiceBricks.Logging.InMemory; +using WebApp.Extensions; + +namespace WebApp +{ + public class StartupPostgres + { + public StartupPostgres(IConfiguration configuration) + { + Configuration = configuration; + } + + public virtual IConfiguration Configuration { get; set; } + + public virtual void ConfigureServices(IServiceCollection services) + { + services.AddServiceBricks(Configuration); + //services.AddServiceBricksLoggingInMemory(Configuration); + services.AddServiceBricksCachePostgres(Configuration); + ModuleRegistry.Instance.Register(new WebApp.Model.WebAppModule()); // Just for automapper registration + services.AddServiceBricksComplete(Configuration); + services.AddCustomWebsite(Configuration); + } + + public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment webHostEnvironment) + { + app.StartServiceBricks(); + app.StartCustomWebsite(webHostEnvironment); + var logger = app.ApplicationServices.GetRequiredService>(); + logger.LogInformation("Application Started"); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/StartupSqlServer.cs b/src/V1/Tests/WebAppNet9/StartupSqlServer.cs new file mode 100644 index 0000000..c146465 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/StartupSqlServer.cs @@ -0,0 +1,36 @@ +using ServiceBricks; +using ServiceBricks.Cache.SqlServer; + +//using ServiceBricks.Logging.InMemory; +using WebApp.Extensions; + +namespace WebApp +{ + public class StartupSqlServer + { + public StartupSqlServer(IConfiguration configuration) + { + Configuration = configuration; + } + + public virtual IConfiguration Configuration { get; set; } + + public virtual void ConfigureServices(IServiceCollection services) + { + services.AddServiceBricks(Configuration); + //services.AddServiceBricksLoggingInMemory(Configuration); + services.AddServiceBricksCacheSqlServer(Configuration); + ModuleRegistry.Instance.Register(new WebApp.Model.WebAppModule()); // Just for automapper registration + services.AddServiceBricksComplete(Configuration); + services.AddCustomWebsite(Configuration); + } + + public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment webHostEnvironment) + { + app.StartServiceBricks(); + app.StartCustomWebsite(webHostEnvironment); + var logger = app.ApplicationServices.GetRequiredService>(); + logger.LogInformation("Application Started"); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/StartupSqlite.cs b/src/V1/Tests/WebAppNet9/StartupSqlite.cs new file mode 100644 index 0000000..69d9d32 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/StartupSqlite.cs @@ -0,0 +1,36 @@ +using ServiceBricks; +using ServiceBricks.Cache.Sqlite; + +//using ServiceBricks.Logging.InMemory; +using WebApp.Extensions; + +namespace WebApp +{ + public class StartupSqlite + { + public StartupSqlite(IConfiguration configuration) + { + Configuration = configuration; + } + + public virtual IConfiguration Configuration { get; set; } + + public virtual void ConfigureServices(IServiceCollection services) + { + services.AddServiceBricks(Configuration); + //services.AddServiceBricksLoggingInMemory(Configuration); + services.AddServiceBricksCacheSqlite(Configuration); + ModuleRegistry.Instance.Register(new WebApp.Model.WebAppModule()); // Just for automapper registration + services.AddServiceBricksComplete(Configuration); + services.AddCustomWebsite(Configuration); + } + + public virtual void Configure(IApplicationBuilder app, IWebHostEnvironment webHostEnvironment) + { + app.StartServiceBricks(); + app.StartCustomWebsite(webHostEnvironment); + var logger = app.ApplicationServices.GetRequiredService>(); + logger.LogInformation("Application Started"); + } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/ViewModel/Home/ErrorViewModel.cs b/src/V1/Tests/WebAppNet9/ViewModel/Home/ErrorViewModel.cs new file mode 100644 index 0000000..c8e340c --- /dev/null +++ b/src/V1/Tests/WebAppNet9/ViewModel/Home/ErrorViewModel.cs @@ -0,0 +1,7 @@ +namespace WebApp.ViewModel.Home +{ + public class ErrorViewModel + { + public string Message { get; set; } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/ViewModel/Home/HomeViewModel.cs b/src/V1/Tests/WebAppNet9/ViewModel/Home/HomeViewModel.cs new file mode 100644 index 0000000..509ab89 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/ViewModel/Home/HomeViewModel.cs @@ -0,0 +1,6 @@ +namespace WebApp.ViewModel.Home +{ + public class HomeViewModel + { + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/ViewModel/Home/RegisterAdminViewModel.cs b/src/V1/Tests/WebAppNet9/ViewModel/Home/RegisterAdminViewModel.cs new file mode 100644 index 0000000..e7c6937 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/ViewModel/Home/RegisterAdminViewModel.cs @@ -0,0 +1,13 @@ +using System.ComponentModel.DataAnnotations; + +namespace WebApp.ViewModel.Home +{ + public class RegisterAdminViewModel + { + [Required] + public string Email { get; set; } + + [Required] + public string Password { get; set; } + } +} \ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Views/Home/Error.cshtml b/src/V1/Tests/WebAppNet9/Views/Home/Error.cshtml new file mode 100644 index 0000000..4eaed11 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Views/Home/Error.cshtml @@ -0,0 +1,16 @@ +@model WebApp.ViewModel.Home.ErrorViewModel +@{ + ViewBag.Title = "Error"; + ViewBag.Description = "Error"; + ViewBag.Keywords = "Error"; +} +

Error

+

+ An error happened processing your request. +

+

+ @if(Model != null) + { + @Model.Message + } +

\ No newline at end of file diff --git a/src/V1/Tests/WebAppNet9/Views/Home/Index.cshtml b/src/V1/Tests/WebAppNet9/Views/Home/Index.cshtml new file mode 100644 index 0000000..65cc5f7 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Views/Home/Index.cshtml @@ -0,0 +1,15 @@ +@model WebApp.ViewModel.Home.HomeViewModel +@{ + ViewBag.Title = "Welcome"; + ViewBag.Description = "Welcome"; + ViewBag.Keywords = "Welcome"; +} +

Welcome

+

+ This is the ServiceBricks Web API Starter Application. + You can modify this application however you like. + Please visit our website at: https://ServiceBricks.com. +

+

+ View Swagger Page +

diff --git a/src/V1/Tests/WebAppNet9/Views/Home/RegisterAdmin.cshtml b/src/V1/Tests/WebAppNet9/Views/Home/RegisterAdmin.cshtml new file mode 100644 index 0000000..4ddfb1e --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Views/Home/RegisterAdmin.cshtml @@ -0,0 +1,29 @@ +@inject Microsoft.AspNetCore.Mvc.Localization.IViewLocalizer Localizer +@model WebApp.ViewModel.Home.HomeViewModel +@{ + ViewBag.Title = @Localizer.GetString("Register Admin"); + ViewBag.Description = "Register Admin"; + ViewBag.Keywords = "Register Admin"; +} +
+

@Localizer.GetString("Register Admin")

+

+ @Localizer.GetString("This is the SERVICE BRICK Web API Starter Application.") + @Localizer.GetString("An administrator is required to manage this website.") + @Localizer.GetString("Please enter an email and password below to register as an Admin.") +

+
+ @Html.ValidationSummary() +
+
+
+
+
+ @Html.AntiForgeryToken() + + + +
+
+
+
diff --git a/src/V1/Tests/WebAppNet9/Views/_ViewStart.cshtml b/src/V1/Tests/WebAppNet9/Views/_ViewStart.cshtml new file mode 100644 index 0000000..a5f1004 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/Views/_ViewStart.cshtml @@ -0,0 +1,3 @@ +@{ + Layout = "_Layout"; +} diff --git a/src/V1/Tests/WebAppNet9/WebAppNet9.csproj b/src/V1/Tests/WebAppNet9/WebAppNet9.csproj new file mode 100644 index 0000000..0c91bd2 --- /dev/null +++ b/src/V1/Tests/WebAppNet9/WebAppNet9.csproj @@ -0,0 +1,48 @@ + + + + net9.0 + disable + enable + False + + + + + Always + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/V1/Tests/WebAppNet9/wwwroot/Logo.png b/src/V1/Tests/WebAppNet9/wwwroot/Logo.png new file mode 100644 index 0000000..d161e16 Binary files /dev/null and b/src/V1/Tests/WebAppNet9/wwwroot/Logo.png differ diff --git a/src/V1/Tests/WebAppNet9/wwwroot/favicon.ico b/src/V1/Tests/WebAppNet9/wwwroot/favicon.ico new file mode 100644 index 0000000..7748ac5 Binary files /dev/null and b/src/V1/Tests/WebAppNet9/wwwroot/favicon.ico differ