Initial commit - ERP

This commit is contained in:
2026-08-05 21:15:15 +03:00
commit 3908155685
1203 changed files with 85576 additions and 0 deletions
@@ -0,0 +1,68 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Commerce.Contracts.DTOs;
using Commerce.Core.Services;
using Commerce.Domain;
using Commerce.Domain.Entities;
using Microsoft.EntityFrameworkCore;
using Xunit;
namespace Commerce.Core.Tests;
public class CategoryServiceTests
{
private Context GetContext()
{
var options = new DbContextOptionsBuilder<Context>()
.UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString())
.Options;
return new Context(options);
}
[Fact]
public async Task GetAllCategories_ShouldFilterByLocalizedName()
{
// Arrange
using var context = GetContext();
await context.Database.EnsureCreatedAsync();
var id1 = Guid.NewGuid();
context.Categories.AddRange(new List<Category>
{
new Category {
Id = id1,
Translations = new List<CategoryTranslation>
{
new CategoryTranslation { Language = "en", Info = new CategoryInfo { Name = "Electronics", Description = "Desc" } },
new CategoryTranslation { Language = "ar", Info = new CategoryInfo { Name = "إلكترونيات", Description = "Desc" } }
},
Photos = Array.Empty<string>()
},
new Category {
Id = Guid.NewGuid(),
Translations = new List<CategoryTranslation>
{
new CategoryTranslation { Language = "en", Info = new CategoryInfo { Name = "Fashion", Description = "Desc" } }
},
Photos = Array.Empty<string>()
}
});
await context.SaveChangesAsync();
var service = new CategoryService(context);
// Act - Search for Arabic name
var resultsAr = await service.GetAllCategories("إلكترونيات");
// Act - Search for English name
var resultsEn = await service.GetAllCategories("Elec");
// Assert
Assert.Single(resultsAr);
Assert.Equal(id1, resultsAr.First().Id);
Assert.Single(resultsEn);
Assert.Equal(id1, resultsEn.First().Id);
}
}
@@ -0,0 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="coverlet.collector" Version="6.0.4" />
<PackageReference Include="Microsoft.EntityFrameworkCore.InMemory" Version="10.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageReference Include="xunit" Version="2.9.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.8.2" />
</ItemGroup>
<ItemGroup>
<Using Include="Xunit" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Commerce.Core\Commerce.Core.csproj" />
<ProjectReference Include="..\Commerce.Contracts\Commerce.Contracts.csproj" />
<ProjectReference Include="..\Commerce.Domain\Commerce.Domain.csproj" />
</ItemGroup>
</Project>
@@ -0,0 +1,153 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Commerce.Contracts.DTOs;
using Commerce.Domain.Entities;
using Xunit;
using TechnicalDetail = Commerce.Domain.Entities.TechnicalDetail;
namespace Commerce.Core.Tests;
public class LocalizationMappingTests
{
[Fact]
public void Product_ToVM_ShouldMapIndependentTechnicalDetails()
{
// Arrange
var product = new Product
{
Id = Guid.NewGuid(),
Translations = new List<ProductTranslation>
{
new ProductTranslation
{
Language = "en",
Info = new ProductInfo
{
Name = "Product 1",
TechnicalDetails = new List<TechnicalDetail> { new TechnicalDetail { Key = "Color", Value = "Red" } }
}
},
new ProductTranslation
{
Language = "ar",
Info = new ProductInfo
{
Name = "منتج 1",
TechnicalDetails = new List<TechnicalDetail> { new TechnicalDetail { Key = "اللون", Value = "أحمر" } }
}
}
}
};
// Act
var vm = Product.ToVM(product);
// Assert
Assert.NotNull(vm.Translations);
Assert.Equal(2, vm.Translations.Count);
var enTrans = vm.Translations.First(t => t.Language == "en");
Assert.Single(enTrans.Info.TechnicalDetails);
Assert.Equal("Color", enTrans.Info.TechnicalDetails[0].Key);
Assert.Equal("Red", enTrans.Info.TechnicalDetails[0].Value);
var arTrans = vm.Translations.First(t => t.Language == "ar");
Assert.Single(arTrans.Info.TechnicalDetails);
Assert.Equal("اللون", arTrans.Info.TechnicalDetails[0].Key);
Assert.Equal("أحمر", arTrans.Info.TechnicalDetails[0].Value);
}
[Fact]
public void Product_ToEntity_ShouldMapIndependentTechnicalDetails()
{
// Arrange
var vm = new ProductVM
{
Id = Guid.NewGuid(),
Translations = new List<ProductTranslationVM>
{
new ProductTranslationVM
{
Language = "en",
Info = new ProductInfoVM
{
Name = "Product 1",
TechnicalDetails = new List<TechnicalDetailVM> { new TechnicalDetailVM { Key = "Weight", Value = "1kg" } }
}
}
}
};
// Act
var entity = Product.ToEntity(vm);
// Assert
Assert.NotNull(entity.Translations);
Assert.Single(entity.Translations.First(t => t.Language == "en").Info.TechnicalDetails);
Assert.Equal("Weight", entity.Translations.First(t => t.Language == "en").Info.TechnicalDetails[0].Key);
Assert.Equal("1kg", entity.Translations.First(t => t.Language == "en").Info.TechnicalDetails[0].Value);
}
[Fact]
public void Category_ToVM_ShouldMapIndependentTechnicalDetails()
{
// Arrange
var category = new Category
{
Id = Guid.NewGuid(),
Translations = new List<CategoryTranslation>
{
new CategoryTranslation
{
Language = "en",
Info = new CategoryInfo
{
Name = "Category 1",
TechnicalDetails = new List<TechnicalDetail> { new TechnicalDetail { Key = "Material", Value = "Leather" } }
}
}
}
};
// Act
var vm = Category.ToVM(category);
// Assert
Assert.NotNull(vm.Translations);
Assert.Single(vm.Translations.First(t => t.Language == "en").Info.TechnicalDetails);
Assert.Equal("Material", vm.Translations.First(t => t.Language == "en").Info.TechnicalDetails[0].Key);
Assert.Equal("Leather", vm.Translations.First(t => t.Language == "en").Info.TechnicalDetails[0].Value);
}
[Fact]
public void Category_ToEntity_ShouldMapIndependentTechnicalDetails()
{
// Arrange
var vm = new CategoryVM
{
Id = Guid.NewGuid(),
Translations = new List<CategoryTranslationVM>
{
new CategoryTranslationVM
{
Language = "en",
Info = new CategoryInfoVM
{
Name = "Category 1",
TechnicalDetails = new List<TechnicalDetailVM> { new TechnicalDetailVM { Key = "Power", Value = "100W" } }
}
}
}
};
// Act
var entity = Category.ToEntity(vm);
// Assert
Assert.NotNull(entity.Translations);
Assert.Single(entity.Translations.First(t => t.Language == "en").Info.TechnicalDetails);
Assert.Equal("Power", entity.Translations.First(t => t.Language == "en").Info.TechnicalDetails[0].Key);
Assert.Equal("100W", entity.Translations.First(t => t.Language == "en").Info.TechnicalDetails[0].Value);
}
}
@@ -0,0 +1,10 @@
namespace Commerce.Core.Tests;
public class UnitTest1
{
[Fact]
public void Test1()
{
}
}
Binary file not shown.
@@ -0,0 +1,823 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v10.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v10.0": {
"Commerce.Core.Tests/1.0.0": {
"dependencies": {
"Commerce.Contracts": "1.0.0",
"Commerce.Core": "1.0.0",
"Commerce.Domain": "1.0.0",
"Microsoft.EntityFrameworkCore.InMemory": "10.0.0",
"Microsoft.NET.Test.Sdk": "17.11.1",
"xunit": "2.9.2"
},
"runtime": {
"Commerce.Core.Tests.dll": {}
}
},
"Bogus/35.6.3": {
"runtime": {
"lib/net6.0/Bogus.dll": {
"assemblyVersion": "35.6.3.0",
"fileVersion": "35.6.3.0"
}
}
},
"FluentEmail.Core/3.0.2": {
"runtime": {
"lib/netstandard2.0/FluentEmail.Core.dll": {
"assemblyVersion": "3.0.2.0",
"fileVersion": "3.0.2.0"
}
}
},
"FluentEmail.Smtp/3.0.2": {
"dependencies": {
"FluentEmail.Core": "3.0.2"
},
"runtime": {
"lib/netstandard2.0/FluentEmail.Smtp.dll": {
"assemblyVersion": "3.0.2.0",
"fileVersion": "3.0.2.0"
}
}
},
"FluentValidation/12.1.1": {
"runtime": {
"lib/net8.0/FluentValidation.dll": {
"assemblyVersion": "12.0.0.0",
"fileVersion": "12.1.1.0"
}
}
},
"Microsoft.AspNetCore.Authentication.JwtBearer/9.0.5": {
"dependencies": {
"Microsoft.IdentityModel.Protocols.OpenIdConnect": "8.0.1"
},
"runtime": {
"lib/net9.0/Microsoft.AspNetCore.Authentication.JwtBearer.dll": {
"assemblyVersion": "9.0.5.0",
"fileVersion": "9.0.525.22904"
}
}
},
"Microsoft.AspNetCore.Identity.EntityFrameworkCore/9.0.5": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Relational": "9.0.5"
},
"runtime": {
"lib/net9.0/Microsoft.AspNetCore.Identity.EntityFrameworkCore.dll": {
"assemblyVersion": "9.0.5.0",
"fileVersion": "9.0.525.22904"
}
}
},
"Microsoft.CodeCoverage/17.11.1": {
"runtime": {
"lib/netcoreapp3.1/Microsoft.VisualStudio.CodeCoverage.Shim.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.424.36701"
}
}
},
"Microsoft.EntityFrameworkCore/10.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore.Abstractions": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.EntityFrameworkCore.Abstractions/10.0.0": {
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.Abstractions.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.EntityFrameworkCore.InMemory/10.0.0": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "10.0.0"
},
"runtime": {
"lib/net10.0/Microsoft.EntityFrameworkCore.InMemory.dll": {
"assemblyVersion": "10.0.0.0",
"fileVersion": "10.0.25.52411"
}
}
},
"Microsoft.EntityFrameworkCore.Relational/9.0.5": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "10.0.0"
},
"runtime": {
"lib/net8.0/Microsoft.EntityFrameworkCore.Relational.dll": {
"assemblyVersion": "9.0.5.0",
"fileVersion": "9.0.525.21604"
}
}
},
"Microsoft.IdentityModel.Abstractions/8.12.0": {
"runtime": {
"lib/net9.0/Microsoft.IdentityModel.Abstractions.dll": {
"assemblyVersion": "8.12.0.0",
"fileVersion": "8.12.0.60603"
}
}
},
"Microsoft.IdentityModel.JsonWebTokens/8.12.0": {
"dependencies": {
"Microsoft.IdentityModel.Tokens": "8.12.0"
},
"runtime": {
"lib/net9.0/Microsoft.IdentityModel.JsonWebTokens.dll": {
"assemblyVersion": "8.12.0.0",
"fileVersion": "8.12.0.60603"
}
}
},
"Microsoft.IdentityModel.Logging/8.12.0": {
"dependencies": {
"Microsoft.IdentityModel.Abstractions": "8.12.0"
},
"runtime": {
"lib/net9.0/Microsoft.IdentityModel.Logging.dll": {
"assemblyVersion": "8.12.0.0",
"fileVersion": "8.12.0.60603"
}
}
},
"Microsoft.IdentityModel.Protocols/8.0.1": {
"dependencies": {
"Microsoft.IdentityModel.Tokens": "8.12.0"
},
"runtime": {
"lib/net9.0/Microsoft.IdentityModel.Protocols.dll": {
"assemblyVersion": "8.0.1.0",
"fileVersion": "8.0.1.50722"
}
}
},
"Microsoft.IdentityModel.Protocols.OpenIdConnect/8.0.1": {
"dependencies": {
"Microsoft.IdentityModel.Protocols": "8.0.1",
"System.IdentityModel.Tokens.Jwt": "8.12.0"
},
"runtime": {
"lib/net9.0/Microsoft.IdentityModel.Protocols.OpenIdConnect.dll": {
"assemblyVersion": "8.0.1.0",
"fileVersion": "8.0.1.50722"
}
}
},
"Microsoft.IdentityModel.Tokens/8.12.0": {
"dependencies": {
"Microsoft.IdentityModel.Logging": "8.12.0"
},
"runtime": {
"lib/net9.0/Microsoft.IdentityModel.Tokens.dll": {
"assemblyVersion": "8.12.0.0",
"fileVersion": "8.12.0.60603"
}
}
},
"Microsoft.NET.Test.Sdk/17.11.1": {
"dependencies": {
"Microsoft.CodeCoverage": "17.11.1",
"Microsoft.TestPlatform.TestHost": "17.11.1"
}
},
"Microsoft.TestPlatform.ObjectModel/17.11.1": {
"runtime": {
"lib/netcoreapp3.1/Microsoft.TestPlatform.CoreUtilities.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.124.45402"
},
"lib/netcoreapp3.1/Microsoft.TestPlatform.PlatformAbstractions.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.124.45402"
},
"lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.ObjectModel.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.124.45402"
}
},
"resources": {
"lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "cs"
},
"lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "cs"
},
"lib/netcoreapp3.1/de/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "de"
},
"lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "de"
},
"lib/netcoreapp3.1/es/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "es"
},
"lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "es"
},
"lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "fr"
},
"lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "fr"
},
"lib/netcoreapp3.1/it/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "it"
},
"lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "it"
},
"lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "ja"
},
"lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "ja"
},
"lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "ko"
},
"lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "ko"
},
"lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "pl"
},
"lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "pl"
},
"lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "pt-BR"
},
"lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "pt-BR"
},
"lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "ru"
},
"lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "ru"
},
"lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "tr"
},
"lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "tr"
},
"lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "zh-Hans"
},
"lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "zh-Hans"
},
"lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CoreUtilities.resources.dll": {
"locale": "zh-Hant"
},
"lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.ObjectModel.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Microsoft.TestPlatform.TestHost/17.11.1": {
"dependencies": {
"Microsoft.TestPlatform.ObjectModel": "17.11.1",
"Newtonsoft.Json": "13.0.1"
},
"runtime": {
"lib/netcoreapp3.1/Microsoft.TestPlatform.CommunicationUtilities.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.124.45402"
},
"lib/netcoreapp3.1/Microsoft.TestPlatform.CrossPlatEngine.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.124.45402"
},
"lib/netcoreapp3.1/Microsoft.TestPlatform.Utilities.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.124.45402"
},
"lib/netcoreapp3.1/Microsoft.VisualStudio.TestPlatform.Common.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.124.45402"
},
"lib/netcoreapp3.1/testhost.dll": {
"assemblyVersion": "15.0.0.0",
"fileVersion": "17.1100.124.45402"
}
},
"resources": {
"lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "cs"
},
"lib/netcoreapp3.1/cs/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "cs"
},
"lib/netcoreapp3.1/cs/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "cs"
},
"lib/netcoreapp3.1/de/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "de"
},
"lib/netcoreapp3.1/de/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "de"
},
"lib/netcoreapp3.1/de/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "de"
},
"lib/netcoreapp3.1/es/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "es"
},
"lib/netcoreapp3.1/es/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "es"
},
"lib/netcoreapp3.1/es/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "es"
},
"lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "fr"
},
"lib/netcoreapp3.1/fr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "fr"
},
"lib/netcoreapp3.1/fr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "fr"
},
"lib/netcoreapp3.1/it/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "it"
},
"lib/netcoreapp3.1/it/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "it"
},
"lib/netcoreapp3.1/it/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "it"
},
"lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "ja"
},
"lib/netcoreapp3.1/ja/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "ja"
},
"lib/netcoreapp3.1/ja/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "ja"
},
"lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "ko"
},
"lib/netcoreapp3.1/ko/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "ko"
},
"lib/netcoreapp3.1/ko/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "ko"
},
"lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "pl"
},
"lib/netcoreapp3.1/pl/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "pl"
},
"lib/netcoreapp3.1/pl/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "pl"
},
"lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "pt-BR"
},
"lib/netcoreapp3.1/pt-BR/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "pt-BR"
},
"lib/netcoreapp3.1/pt-BR/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "pt-BR"
},
"lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "ru"
},
"lib/netcoreapp3.1/ru/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "ru"
},
"lib/netcoreapp3.1/ru/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "ru"
},
"lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "tr"
},
"lib/netcoreapp3.1/tr/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "tr"
},
"lib/netcoreapp3.1/tr/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "tr"
},
"lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "zh-Hans"
},
"lib/netcoreapp3.1/zh-Hans/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "zh-Hans"
},
"lib/netcoreapp3.1/zh-Hans/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "zh-Hans"
},
"lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CommunicationUtilities.resources.dll": {
"locale": "zh-Hant"
},
"lib/netcoreapp3.1/zh-Hant/Microsoft.TestPlatform.CrossPlatEngine.resources.dll": {
"locale": "zh-Hant"
},
"lib/netcoreapp3.1/zh-Hant/Microsoft.VisualStudio.TestPlatform.Common.resources.dll": {
"locale": "zh-Hant"
}
}
},
"Newtonsoft.Json/13.0.1": {
"runtime": {
"lib/netstandard2.0/Newtonsoft.Json.dll": {
"assemblyVersion": "13.0.0.0",
"fileVersion": "13.0.1.25517"
}
}
},
"Npgsql/9.0.3": {
"runtime": {
"lib/net8.0/Npgsql.dll": {
"assemblyVersion": "9.0.3.0",
"fileVersion": "9.0.3.0"
}
}
},
"Npgsql.EntityFrameworkCore.PostgreSQL/9.0.4": {
"dependencies": {
"Microsoft.EntityFrameworkCore": "10.0.0",
"Microsoft.EntityFrameworkCore.Relational": "9.0.5",
"Npgsql": "9.0.3"
},
"runtime": {
"lib/net8.0/Npgsql.EntityFrameworkCore.PostgreSQL.dll": {
"assemblyVersion": "9.0.4.0",
"fileVersion": "9.0.4.0"
}
}
},
"System.IdentityModel.Tokens.Jwt/8.12.0": {
"dependencies": {
"Microsoft.IdentityModel.JsonWebTokens": "8.12.0",
"Microsoft.IdentityModel.Tokens": "8.12.0"
},
"runtime": {
"lib/net9.0/System.IdentityModel.Tokens.Jwt.dll": {
"assemblyVersion": "8.12.0.0",
"fileVersion": "8.12.0.60603"
}
}
},
"xunit/2.9.2": {
"dependencies": {
"xunit.assert": "2.9.2",
"xunit.core": "2.9.2"
}
},
"xunit.abstractions/2.0.3": {
"runtime": {
"lib/netstandard2.0/xunit.abstractions.dll": {
"assemblyVersion": "2.0.0.0",
"fileVersion": "0.0.0.0"
}
}
},
"xunit.assert/2.9.2": {
"runtime": {
"lib/net6.0/xunit.assert.dll": {
"assemblyVersion": "2.9.2.0",
"fileVersion": "2.9.2.0"
}
}
},
"xunit.core/2.9.2": {
"dependencies": {
"xunit.extensibility.core": "2.9.2",
"xunit.extensibility.execution": "2.9.2"
}
},
"xunit.extensibility.core/2.9.2": {
"dependencies": {
"xunit.abstractions": "2.0.3"
},
"runtime": {
"lib/netstandard1.1/xunit.core.dll": {
"assemblyVersion": "2.9.2.0",
"fileVersion": "2.9.2.0"
}
}
},
"xunit.extensibility.execution/2.9.2": {
"dependencies": {
"xunit.extensibility.core": "2.9.2"
},
"runtime": {
"lib/netstandard1.1/xunit.execution.dotnet.dll": {
"assemblyVersion": "2.9.2.0",
"fileVersion": "2.9.2.0"
}
}
},
"Commerce.Contracts/1.0.0": {
"dependencies": {
"FluentValidation": "12.1.1"
},
"runtime": {
"Commerce.Contracts.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"Commerce.Core/1.0.0": {
"dependencies": {
"Commerce.Contracts": "1.0.0",
"Commerce.Domain": "1.0.0",
"FluentEmail.Core": "3.0.2",
"FluentEmail.Smtp": "3.0.2",
"Generic": "1.0.0",
"Microsoft.AspNetCore.Authentication.JwtBearer": "9.0.5",
"Microsoft.EntityFrameworkCore": "10.0.0",
"Npgsql.EntityFrameworkCore.PostgreSQL": "9.0.4",
"System.IdentityModel.Tokens.Jwt": "8.12.0"
},
"runtime": {
"Commerce.Core.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"Commerce.Domain/1.0.0": {
"dependencies": {
"Bogus": "35.6.3",
"Commerce.Contracts": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "9.0.5",
"Npgsql.EntityFrameworkCore.PostgreSQL": "9.0.4"
},
"runtime": {
"Commerce.Domain.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
},
"Generic/1.0.0": {
"runtime": {
"Generic.dll": {
"assemblyVersion": "1.0.0.0",
"fileVersion": "1.0.0.0"
}
}
}
}
},
"libraries": {
"Commerce.Core.Tests/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Bogus/35.6.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-+5omfZWy8gOcbpc48vKfMI4h/ecbdf3NQm6xCl3zMbaP4J3rMMm5h3kPFeIWBgt4mbz6YY0eeZDLR/6yv1khKw==",
"path": "bogus/35.6.3",
"hashPath": "bogus.35.6.3.nupkg.sha512"
},
"FluentEmail.Core/3.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uQFFbJgMhhCFUti7pfMi429fMNi7fLGMj+7uDtD7POlQzLxlhXJ6tmt4Y1SI51sZsA36GO5b7+o29eY/dKiICQ==",
"path": "fluentemail.core/3.0.2",
"hashPath": "fluentemail.core.3.0.2.nupkg.sha512"
},
"FluentEmail.Smtp/3.0.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Y5pZKS/mXSl7D5WJWecvfo1kpIMDc6U0VRU6wRbE9wEv2IqMH3cQXa/97Pwi+m31COepIqc6dMhGMtAJ2Qh7rw==",
"path": "fluentemail.smtp/3.0.2",
"hashPath": "fluentemail.smtp.3.0.2.nupkg.sha512"
},
"FluentValidation/12.1.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-EPpkIe1yh1a0OXyC100oOA8WMbZvqUu5plwhvYcb7oSELfyUZzfxV48BLhvs3kKo4NwG7MGLNgy1RJiYtT8Dpw==",
"path": "fluentvalidation/12.1.1",
"hashPath": "fluentvalidation.12.1.1.nupkg.sha512"
},
"Microsoft.AspNetCore.Authentication.JwtBearer/9.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-8J04KPX5NCo6j5AjY/rgeLTceMBJ8Sq4k+YNxN/7hCrbCH1iwHVw7VGGvlCscj615ewMX3jYDmxxLdutbSPOcA==",
"path": "microsoft.aspnetcore.authentication.jwtbearer/9.0.5",
"hashPath": "microsoft.aspnetcore.authentication.jwtbearer.9.0.5.nupkg.sha512"
},
"Microsoft.AspNetCore.Identity.EntityFrameworkCore/9.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-SJcjUt+vTK3VpltheGY53IzYxVjYt63gPk1bc+NGm6A37gGe6BzRcSJF62wL4PsAW4MZiClA6IwVo/aDBVCk/g==",
"path": "microsoft.aspnetcore.identity.entityframeworkcore/9.0.5",
"hashPath": "microsoft.aspnetcore.identity.entityframeworkcore.9.0.5.nupkg.sha512"
},
"Microsoft.CodeCoverage/17.11.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-nPJqrcA5iX+Y0kqoT3a+pD/8lrW/V7ayqnEJQsTonSoPz59J8bmoQhcSN4G8+UJ64Hkuf0zuxnfuj2lkHOq4cA==",
"path": "microsoft.codecoverage/17.11.1",
"hashPath": "microsoft.codecoverage.17.11.1.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-hHa2amRjMyBLUH/KTML6FgIAhZ0VFYkhCKwWEax0rO6iNeM1P5MflyeQLE5dniSIOZHc3Oqyv5UIyTFO4e1Auw==",
"path": "microsoft.entityframeworkcore/10.0.0",
"hashPath": "microsoft.entityframeworkcore.10.0.0.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Abstractions/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-C+TT9k7f1GQ8agOfV512K9iwrzi76RXVSDiLx+iWC9pz3QhEpSF1Dyk+FpVvd8ULQ+rqymfM8KQ7g48ttQVyMg==",
"path": "microsoft.entityframeworkcore.abstractions/10.0.0",
"hashPath": "microsoft.entityframeworkcore.abstractions.10.0.0.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.InMemory/10.0.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-06yN/NR9bOM7GjUR1hnucciiK8nrr0bs7MP6RKCdHQp5BCcR4P9zemtlz6aznJms1xvybPzKwESTtoC6XMAPQQ==",
"path": "microsoft.entityframeworkcore.inmemory/10.0.0",
"hashPath": "microsoft.entityframeworkcore.inmemory.10.0.0.nupkg.sha512"
},
"Microsoft.EntityFrameworkCore.Relational/9.0.5": {
"type": "package",
"serviceable": true,
"sha512": "sha512-6eErbrZFd9yNnncemtDdmHZ3KC792OQCIYITuMsjK2oh4CLzlYo8mzNsozgUzQ+utHnne11/3eV8zMWbYF5Puw==",
"path": "microsoft.entityframeworkcore.relational/9.0.5",
"hashPath": "microsoft.entityframeworkcore.relational.9.0.5.nupkg.sha512"
},
"Microsoft.IdentityModel.Abstractions/8.12.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-V7fHMFpfzvx7twWMV3jrf3OFVmYn3QhUYtvfMRD9yUPs9gxnQSaRMZh5NzCsnW3ZZ80J09EE7yyjM71y9JC6hQ==",
"path": "microsoft.identitymodel.abstractions/8.12.0",
"hashPath": "microsoft.identitymodel.abstractions.8.12.0.nupkg.sha512"
},
"Microsoft.IdentityModel.JsonWebTokens/8.12.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-gOup2SmdwaXooLR0POKfrkyrw+R+G8nc8Nk80TL0196kFQK7Bg7Qr4x3jvOCm3TR8QLqU8cVpSVqBLtUaosPEg==",
"path": "microsoft.identitymodel.jsonwebtokens/8.12.0",
"hashPath": "microsoft.identitymodel.jsonwebtokens.8.12.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Logging/8.12.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-IakwNWUTy5RlcDcKwtL5TyfDLZmA8FFnSDhfr+wfGGPMON9GkpkUY8NakIJjdy6mv6C1lM/Jkn3IuaeS9MXesA==",
"path": "microsoft.identitymodel.logging/8.12.0",
"hashPath": "microsoft.identitymodel.logging.8.12.0.nupkg.sha512"
},
"Microsoft.IdentityModel.Protocols/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-uA2vpKqU3I2mBBEaeJAWPTjT9v1TZrGWKdgK6G5qJd03CLx83kdiqO9cmiK8/n1erkHzFBwU/RphP83aAe3i3g==",
"path": "microsoft.identitymodel.protocols/8.0.1",
"hashPath": "microsoft.identitymodel.protocols.8.0.1.nupkg.sha512"
},
"Microsoft.IdentityModel.Protocols.OpenIdConnect/8.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-AQDbfpL+yzuuGhO/mQhKNsp44pm5Jv8/BI4KiFXR7beVGZoSH35zMV3PrmcfvSTsyI6qrcR898NzUauD6SRigg==",
"path": "microsoft.identitymodel.protocols.openidconnect/8.0.1",
"hashPath": "microsoft.identitymodel.protocols.openidconnect.8.0.1.nupkg.sha512"
},
"Microsoft.IdentityModel.Tokens/8.12.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-WCU3wv5sioX5hhp3oHw8sCdygnfZJtRKJGCg+AckP6nbp0QGKK3VohTrxIF0dpuziLAPg57CPfS9X8UERroKxA==",
"path": "microsoft.identitymodel.tokens/8.12.0",
"hashPath": "microsoft.identitymodel.tokens.8.12.0.nupkg.sha512"
},
"Microsoft.NET.Test.Sdk/17.11.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-U3Ty4BaGoEu+T2bwSko9tWqWUOU16WzSFkq6U8zve75oRBMSLTBdMAZrVNNz1Tq12aCdDom9fcOcM9QZaFHqFg==",
"path": "microsoft.net.test.sdk/17.11.1",
"hashPath": "microsoft.net.test.sdk.17.11.1.nupkg.sha512"
},
"Microsoft.TestPlatform.ObjectModel/17.11.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-E2jZqAU6JeWEVsyOEOrSW1o1bpHLgb25ypvKNB/moBXPVsFYBPd/Jwi7OrYahG50J83LfHzezYI+GaEkpAotiA==",
"path": "microsoft.testplatform.objectmodel/17.11.1",
"hashPath": "microsoft.testplatform.objectmodel.17.11.1.nupkg.sha512"
},
"Microsoft.TestPlatform.TestHost/17.11.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-DnG+GOqJXO/CkoqlJWeDFTgPhqD/V6VqUIL3vINizCWZ3X+HshCtbbyDdSHQQEjrc2Sl/K3yaxX6s+5LFEdYuw==",
"path": "microsoft.testplatform.testhost/17.11.1",
"hashPath": "microsoft.testplatform.testhost.17.11.1.nupkg.sha512"
},
"Newtonsoft.Json/13.0.1": {
"type": "package",
"serviceable": true,
"sha512": "sha512-ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A==",
"path": "newtonsoft.json/13.0.1",
"hashPath": "newtonsoft.json.13.0.1.nupkg.sha512"
},
"Npgsql/9.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-tPvY61CxOAWxNsKLEBg+oR646X4Bc8UmyQ/tJszL/7mEmIXQnnBhVJZrZEEUv0Bstu0mEsHZD5At3EO8zQRAYw==",
"path": "npgsql/9.0.3",
"hashPath": "npgsql.9.0.3.nupkg.sha512"
},
"Npgsql.EntityFrameworkCore.PostgreSQL/9.0.4": {
"type": "package",
"serviceable": true,
"sha512": "sha512-mw5vcY2IEc7L+IeGrxpp/J5OSnCcjkjAgJYCm/eD52wpZze8zsSifdqV7zXslSMmfJG2iIUGZyo3KuDtEFKwMQ==",
"path": "npgsql.entityframeworkcore.postgresql/9.0.4",
"hashPath": "npgsql.entityframeworkcore.postgresql.9.0.4.nupkg.sha512"
},
"System.IdentityModel.Tokens.Jwt/8.12.0": {
"type": "package",
"serviceable": true,
"sha512": "sha512-JpkST6AQlxrXXQ05jVNqoPsU9fjIfERJdCWMxIBWzGhuNH4q/TkP5suPdlNFtHhIN+ngWQ8rmaCNY35EhACHwg==",
"path": "system.identitymodel.tokens.jwt/8.12.0",
"hashPath": "system.identitymodel.tokens.jwt.8.12.0.nupkg.sha512"
},
"xunit/2.9.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-7LhFS2N9Z6Xgg8aE5lY95cneYivRMfRI8v+4PATa4S64D5Z/Plkg0qa8dTRHSiGRgVZ/CL2gEfJDE5AUhOX+2Q==",
"path": "xunit/2.9.2",
"hashPath": "xunit.2.9.2.nupkg.sha512"
},
"xunit.abstractions/2.0.3": {
"type": "package",
"serviceable": true,
"sha512": "sha512-pot1I4YOxlWjIb5jmwvvQNbTrZ3lJQ+jUGkGjWE3hEFM0l5gOnBWS+H3qsex68s5cO52g+44vpGzhAt+42vwKg==",
"path": "xunit.abstractions/2.0.3",
"hashPath": "xunit.abstractions.2.0.3.nupkg.sha512"
},
"xunit.assert/2.9.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-QkNBAQG4pa66cholm28AxijBjrmki98/vsEh4Sx5iplzotvPgpiotcxqJQMRC8d7RV7nIT8ozh97957hDnZwsQ==",
"path": "xunit.assert/2.9.2",
"hashPath": "xunit.assert.2.9.2.nupkg.sha512"
},
"xunit.core/2.9.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-O6RrNSdmZ0xgEn5kT927PNwog5vxTtKrWMihhhrT0Sg9jQ7iBDciYOwzBgP2krBEk5/GBXI18R1lKvmnxGcb4w==",
"path": "xunit.core/2.9.2",
"hashPath": "xunit.core.2.9.2.nupkg.sha512"
},
"xunit.extensibility.core/2.9.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-Ol+KlBJz1x8BrdnhN2DeOuLrr1I/cTwtHCggL9BvYqFuVd/TUSzxNT5O0NxCIXth30bsKxgMfdqLTcORtM52yQ==",
"path": "xunit.extensibility.core/2.9.2",
"hashPath": "xunit.extensibility.core.2.9.2.nupkg.sha512"
},
"xunit.extensibility.execution/2.9.2": {
"type": "package",
"serviceable": true,
"sha512": "sha512-rKMpq4GsIUIJibXuZoZ8lYp5EpROlnYaRpwu9Zr0sRZXE7JqJfEEbCsUriZqB+ByXCLFBJyjkTRULMdC+U566g==",
"path": "xunit.extensibility.execution/2.9.2",
"hashPath": "xunit.extensibility.execution.2.9.2.nupkg.sha512"
},
"Commerce.Contracts/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Commerce.Core/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Commerce.Domain/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
},
"Generic/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}
@@ -0,0 +1,19 @@
{
"runtimeOptions": {
"tfm": "net10.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "10.0.0"
},
{
"name": "Microsoft.AspNetCore.App",
"version": "10.0.0"
}
],
"configProperties": {
"System.Reflection.NullabilityInfoContext.IsSupported": true,
"System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false
}
}
}
Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More