From ec2345c6f4c322e5ccd47aabd68449e366e21f2d Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 15 Feb 2022 00:36:43 +0300 Subject: [PATCH 01/17] Initial Project creation --- services/basket/EShopOnAbp.BasketService.sln | 7 + .../BasketServiceAutoMapperProfile.cs | 14 ++ .../BasketServiceModule.cs | 184 ++++++++++++++++++ .../Controllers/HomeController.cs | 12 ++ .../EShopOnAbp.BasketService.csproj | 67 +++++++ .../Entities/Basket.cs | 77 ++++++++ .../Entities/BasketItem.cs | 18 ++ .../Entities/BasketProductUpdatedEto.cs | 7 + .../Entities/BasketRepository.cs | 23 +++ .../Entities/IBasketRepository.cs | 10 + .../Orders/OrderPlacedEventHandler.cs | 25 +++ .../Localization/BasketService/ar.json | 8 + .../Localization/BasketService/cs.json | 8 + .../Localization/BasketService/de-DE.json | 8 + .../Localization/BasketService/en-GB.json | 8 + .../Localization/BasketService/en.json | 12 ++ .../Localization/BasketService/es.json | 8 + .../Localization/BasketService/fi.json | 8 + .../Localization/BasketService/fr.json | 8 + .../Localization/BasketService/hi.json | 8 + .../Localization/BasketService/hu.json | 8 + .../Localization/BasketService/it.json | 8 + .../Localization/BasketService/nl.json | 8 + .../Localization/BasketService/pl-PL.json | 8 + .../Localization/BasketService/pt-BR.json | 8 + .../Localization/BasketService/ro-RO.json | 8 + .../Localization/BasketService/ru.json | 8 + .../Localization/BasketService/sk.json | 8 + .../Localization/BasketService/sl.json | 8 + .../Localization/BasketService/tr.json | 12 ++ .../Localization/BasketService/vi.json | 8 + .../Localization/BasketService/zh-Hans.json | 10 + .../Localization/BasketService/zh-Hant.json | 8 + .../Localization/BasketServiceResource.cs | 10 + .../src/EShopOnAbp.BasketService/Program.cs | 6 + .../Properties/launchSettings.json | 28 +++ .../Services/BasketAppService.cs | 124 ++++++++++++ .../Services/BasketProductEventHandler.cs | 46 +++++ .../Services/BasketProductService.cs | 46 +++++ .../Services/Dtos/AddProductDto.cs | 13 ++ .../Services/Dtos/BasketDto.cs | 12 ++ .../Services/Dtos/BasketItemDto.cs | 11 ++ .../Services/Dtos/IHasAnonymousId.cs | 7 + .../Services/Dtos/RemoveProductDto.cs | 10 + .../Services/IBasketAppService.cs | 11 ++ .../Services/IBasketProductService.cs | 12 ++ ...sketServicePermissionDefinitionProvider.cs | 21 ++ .../Permissions/BasketServicePermissions.cs | 10 + .../appsettings.Development.json | 8 + .../EShopOnAbp.BasketService/appsettings.json | 49 +++++ 50 files changed, 1054 insertions(+) create mode 100644 services/basket/src/EShopOnAbp.BasketService/BasketServiceAutoMapperProfile.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/BasketServiceModule.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Controllers/HomeController.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj create mode 100644 services/basket/src/EShopOnAbp.BasketService/Entities/Basket.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Entities/BasketItem.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Entities/BasketProductUpdatedEto.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Entities/BasketRepository.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Entities/IBasketRepository.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Entities/Orders/OrderPlacedEventHandler.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ar.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/cs.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/de-DE.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/en-GB.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/en.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/es.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/fi.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/fr.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/hi.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/hu.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/it.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/nl.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/pl-PL.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/pt-BR.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ro-RO.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ru.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/sk.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/sl.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/tr.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/vi.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/zh-Hans.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/zh-Hant.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Localization/BasketServiceResource.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Program.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Properties/launchSettings.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/BasketAppService.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/BasketProductEventHandler.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/BasketProductService.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/Dtos/AddProductDto.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/Dtos/BasketDto.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/Dtos/BasketItemDto.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/Dtos/IHasAnonymousId.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/Dtos/RemoveProductDto.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/IBasketAppService.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/IBasketProductService.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/Permissions/BasketServicePermissionDefinitionProvider.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/Services/Permissions/BasketServicePermissions.cs create mode 100644 services/basket/src/EShopOnAbp.BasketService/appsettings.Development.json create mode 100644 services/basket/src/EShopOnAbp.BasketService/appsettings.json diff --git a/services/basket/EShopOnAbp.BasketService.sln b/services/basket/EShopOnAbp.BasketService.sln index 7af39ec3..48f58826 100644 --- a/services/basket/EShopOnAbp.BasketService.sln +++ b/services/basket/EShopOnAbp.BasketService.sln @@ -31,6 +31,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.Ht EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.HttpApi.Host", "src\EShopOnAbp.BasketService.HttpApi.Host\EShopOnAbp.BasketService.HttpApi.Host.csproj", "{748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EShopOnAbp.BasketService", "src\EShopOnAbp.BasketService\EShopOnAbp.BasketService.csproj", "{83F0BE02-6B71-4695-B86F-18DEEE34B485}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -85,6 +87,10 @@ Global {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}.Debug|Any CPU.Build.0 = Debug|Any CPU {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}.Release|Any CPU.ActiveCfg = Release|Any CPU {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}.Release|Any CPU.Build.0 = Release|Any CPU + {83F0BE02-6B71-4695-B86F-18DEEE34B485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83F0BE02-6B71-4695-B86F-18DEEE34B485}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83F0BE02-6B71-4695-B86F-18DEEE34B485}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83F0BE02-6B71-4695-B86F-18DEEE34B485}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -102,6 +108,7 @@ Global {E512F4D9-9375-480F-A2F6-A46509F9D824} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} {EF480016-9127-4916-8735-D2466BDBC582} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} + {83F0BE02-6B71-4695-B86F-18DEEE34B485} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {6AAFA1C6-603E-13FA-45E5-7910AA9F661D} diff --git a/services/basket/src/EShopOnAbp.BasketService/BasketServiceAutoMapperProfile.cs b/services/basket/src/EShopOnAbp.BasketService/BasketServiceAutoMapperProfile.cs new file mode 100644 index 00000000..b276ab1c --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/BasketServiceAutoMapperProfile.cs @@ -0,0 +1,14 @@ +using AutoMapper; +using EShopOnAbp.CatalogService.Grpc; +using EShopOnAbp.CatalogService.Products; + +namespace EShopOnAbp.BasketService; + +public class BasketServiceApplicationAutoMapperProfile : Profile +{ + public BasketServiceApplicationAutoMapperProfile() + { + CreateMap(); + CreateMap(); + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/BasketServiceModule.cs b/services/basket/src/EShopOnAbp.BasketService/BasketServiceModule.cs new file mode 100644 index 00000000..5d1b9984 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/BasketServiceModule.cs @@ -0,0 +1,184 @@ +using EShopOnAbp.BasketService.Entities; +using EShopOnAbp.BasketService.Localization; +using EShopOnAbp.CatalogService.Grpc; +using EShopOnAbp.Shared.Hosting.AspNetCore; +using EShopOnAbp.Shared.Hosting.Microservices; +using Microsoft.AspNetCore.Cors; +using Microsoft.Extensions.Caching.Distributed; +using Microsoft.Extensions.Options; +using Volo.Abp; +using Volo.Abp.AspNetCore.Mvc.AntiForgery; +using Volo.Abp.AutoMapper; +using Volo.Abp.Caching; +using Volo.Abp.Http.Client; +using Volo.Abp.Localization; +using Volo.Abp.Localization.ExceptionHandling; +using Volo.Abp.Modularity; +using Volo.Abp.Validation.Localization; +using Volo.Abp.VirtualFileSystem; + +namespace EShopOnAbp.BasketService +{ + [DependsOn( + )] + public class BasketServiceModule : AbpModule + { + public const string RemoteServiceName = "Basket"; + + public override void ConfigureServices(ServiceConfigurationContext context) + { + var hostingEnvironment = context.Services.GetHostingEnvironment(); + var configuration = context.Services.GetConfiguration(); + + ConfigureAutoMapper(); + ConfigureGrpc(context); + ConfigureDistributedCache(); + ConfigureVirtualFileSystem(); + ConfigureLocalization(); + ConfigureHttpApiProxy(context); + ConfigureAuthentication(context, configuration); + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + var app = context.GetApplicationBuilder(); + var env = context.GetEnvironment(); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + + app.UseCorrelationId(); + app.UseCors(); + app.UseAbpRequestLocalization(); + app.UseStaticFiles(); + app.UseRouting(); + app.UseAuthentication(); + app.UseAbpClaimsMap(); + app.UseAuthorization(); + app.UseSwagger(); + app.UseSwaggerUI(options => + { + var configuration = context.ServiceProvider.GetRequiredService(); + options.SwaggerEndpoint("/swagger/v1/swagger.json", "Basket Service API"); + options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); + options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); + }); + app.UseAbpSerilogEnrichers(); + app.UseAuditing(); + app.UseUnitOfWork(); + app.UseConfiguredEndpoints(); + } + + private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration) + { + JwtBearerConfigurationHelper.Configure(context, "BasketService"); + + SwaggerWithAuthConfigurationHelper.Configure( + context: context, + authority: configuration["AuthServer:Authority"], + scopes: new + Dictionary /* Requested scopes for authorization code request and descriptions for swagger UI only */ + { + {"BasketService", "Basket Service API"} + }, + apiTitle: "Basket Service API" + ); + + context.Services.AddCors(options => + { + options.AddDefaultPolicy(builder => + { + builder + .WithOrigins( + configuration["App:CorsOrigins"] + .Split(",", StringSplitOptions.RemoveEmptyEntries) + .Select(o => o.Trim().RemovePostFix("/")) + .ToArray() + ) + .WithAbpExposedHeaders() + .SetIsOriginAllowedToAllowWildcardSubdomains() + .AllowAnyHeader() + .AllowAnyMethod() + .AllowCredentials(); + }); + }); + + Configure(options => { options.AutoValidate = false; }); + } + + private void ConfigureHttpApiProxy(ServiceConfigurationContext context) + { + context.Services.AddStaticHttpClientProxies( + typeof(BasketServiceApplicationContractsModule).Assembly, + RemoteServiceName + ); + } + + private void ConfigureGrpc(ServiceConfigurationContext context) + { + context.Services.AddGrpcClient((services, options) => + { + var remoteServiceOptions = services.GetRequiredService>().CurrentValue; + var catalogServiceConfiguration = remoteServiceOptions.RemoteServices.GetConfigurationOrDefault("Catalog"); + var catalogGrpcUrl = catalogServiceConfiguration.GetOrDefault("GrpcUrl"); + + options.Address = new Uri(catalogGrpcUrl); + }); + } + + private void ConfigureAutoMapper() + { + Configure(options => + { + options.AddMaps(); + }); + } + + private void ConfigureDistributedCache() + { + Configure(options => + { + options.CacheConfigurators.Add(cacheName => + { + if (cacheName == CacheNameAttribute.GetCacheName(typeof(Basket))) + { + return new DistributedCacheEntryOptions + { + SlidingExpiration = TimeSpan.FromDays(7) + }; + } + + return null; + }); + }); + } + + private void ConfigureVirtualFileSystem() + { + Configure(options => + { + options.FileSets.AddEmbedded(); + }); + } + + private void ConfigureLocalization() + { + Configure(options => + { + options.Resources + .Add("en") + .AddBaseTypes(typeof(AbpValidationResource)) + .AddVirtualJson("/Localization/BasketService"); + + options.DefaultResourceType = typeof(BasketServiceResource); + }); + + Configure(options => + { + options.MapCodeNamespace("BasketService", typeof(BasketServiceResource)); + }); + } + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Controllers/HomeController.cs b/services/basket/src/EShopOnAbp.BasketService/Controllers/HomeController.cs new file mode 100644 index 00000000..3ff3cceb --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Controllers/HomeController.cs @@ -0,0 +1,12 @@ +using Microsoft.AspNetCore.Mvc; +using Volo.Abp.AspNetCore.Mvc; + +namespace EShopOnAbp.BasketService.Controllers; + +public class HomeController : AbpController +{ + public ActionResult Index() + { + return Redirect("~/swagger"); + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj b/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj new file mode 100644 index 00000000..23c87340 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj @@ -0,0 +1,67 @@ + + + + net6.0 + enable + enable + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/services/basket/src/EShopOnAbp.BasketService/Entities/Basket.cs b/services/basket/src/EShopOnAbp.BasketService/Entities/Basket.cs new file mode 100644 index 00000000..efdf7e5d --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Entities/Basket.cs @@ -0,0 +1,77 @@ +using Volo.Abp.Domain.Entities; + +namespace EShopOnAbp.BasketService.Entities; + +public class Basket : AggregateRoot +{ + public List Items { get; set; } + + private Basket() + { + } + + public Basket(Guid id) + : base(id) + { + Items = new List(); + } + + public void AddProduct(Guid productId, int count = 1) + { + if (count < 1) + { + throw new ArgumentOutOfRangeException(nameof(count), "Product count should be 1 or more!"); + } + + var item = Items.FirstOrDefault(x => x.ProductId == productId); + if (item == null) + { + Items.Add(new BasketItem(productId, count)); + } + else + { + item.Count += count; + } + } + + public void RemoveProduct(Guid productId, int? count = null) + { + if (count is < 1) + { + throw new ArgumentOutOfRangeException(nameof(count), "Product count should be null, 1 or more!"); + } + + var item = Items.FirstOrDefault(x => x.ProductId == productId); + if (item == null) + { + return; + } + + if (count == null || item.Count <= count) + { + Items.Remove(item); + return; + } + + item.Count -= count.Value; + } + + public int GetProductCount(Guid productId) + { + var item = Items.FirstOrDefault(x => x.ProductId == productId); + return item?.Count ?? 0; + } + + public void Clear() + { + Items.Clear(); + } + + public void Merge(Basket basket) + { + foreach (var item in basket.Items) + { + AddProduct(item.ProductId, item.Count); + } + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Entities/BasketItem.cs b/services/basket/src/EShopOnAbp.BasketService/Entities/BasketItem.cs new file mode 100644 index 00000000..49576247 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Entities/BasketItem.cs @@ -0,0 +1,18 @@ +namespace EShopOnAbp.BasketService.Entities; + +public class BasketItem +{ + public Guid ProductId { get; private set; } + public int Count { get; internal set; } + + private BasketItem() + { + + } + + public BasketItem(Guid productId, int count = 1) + { + ProductId = productId; + Count = count; + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Entities/BasketProductUpdatedEto.cs b/services/basket/src/EShopOnAbp.BasketService/Entities/BasketProductUpdatedEto.cs new file mode 100644 index 00000000..aa4f3cfc --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Entities/BasketProductUpdatedEto.cs @@ -0,0 +1,7 @@ +namespace EShopOnAbp.BasketService.Entities; + +public class BasketProductUpdatedEto +{ + public Guid ProductId { get; set; } + public string ProductName { get; set; } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Entities/BasketRepository.cs b/services/basket/src/EShopOnAbp.BasketService/Entities/BasketRepository.cs new file mode 100644 index 00000000..b1d796ce --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Entities/BasketRepository.cs @@ -0,0 +1,23 @@ +using Volo.Abp.Caching; + +namespace EShopOnAbp.BasketService.Entities; + +public class BasketRepository : IBasketRepository +{ + private readonly IDistributedCache _cache; + + public BasketRepository(IDistributedCache cache) + { + _cache = cache; + } + + public async Task GetAsync(Guid id) + { + return await _cache.GetOrAddAsync(id, () => Task.FromResult(new Basket(id))); + } + + public async Task UpdateAsync(Basket basket) + { + await _cache.SetAsync(basket.Id, basket); + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Entities/IBasketRepository.cs b/services/basket/src/EShopOnAbp.BasketService/Entities/IBasketRepository.cs new file mode 100644 index 00000000..bd6dbadb --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Entities/IBasketRepository.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Domain.Repositories; + +namespace EShopOnAbp.BasketService.Entities; + +public interface IBasketRepository : IRepository +{ + Task GetAsync(Guid id); + + Task UpdateAsync(Basket basket); +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Entities/Orders/OrderPlacedEventHandler.cs b/services/basket/src/EShopOnAbp.BasketService/Entities/Orders/OrderPlacedEventHandler.cs new file mode 100644 index 00000000..0716d8fd --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Entities/Orders/OrderPlacedEventHandler.cs @@ -0,0 +1,25 @@ +using EShopOnAbp.OrderingService.Orders; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.Uow; + +namespace EShopOnAbp.BasketService.Entities.Orders +{ + public class OrderPlacedEventHandler : IDistributedEventHandler, ITransientDependency + { + private readonly IBasketRepository _basketRepository; + + public OrderPlacedEventHandler(IBasketRepository basketRepository) + { + _basketRepository = basketRepository; + } + + [UnitOfWork] + public async Task HandleEventAsync(OrderPlacedEto eventData) + { + var basket = await _basketRepository.GetAsync(eventData.Buyer.BuyerId.GetValueOrDefault()); + basket.Clear(); + await _basketRepository.UpdateAsync(basket); + } + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ar.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ar.json new file mode 100644 index 00000000..3e5227a9 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ar.json @@ -0,0 +1,8 @@ +{ + "culture": "ar", + "texts": { + "Menu:Home": "الرئيسية", + "Welcome": "مرحبا", + "LongWelcomeMessage": "مرحبا بكم في التطبيق. هذا مشروع بدء تشغيل يعتمد على إطار عمل ABP. لمزيد من المعلومات ، يرجى زيارة abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/cs.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/cs.json new file mode 100644 index 00000000..5a0bbf61 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/cs.json @@ -0,0 +1,8 @@ +{ + "culture": "cs", + "texts": { + "Menu:Home": "Úvod", + "Welcome": "Vítejte", + "LongWelcomeMessage": "Vítejte v aplikaci. Toto je startovací projekt založený na ABP frameworku. Pro více informací, navštivte abp.io." + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/de-DE.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/de-DE.json new file mode 100644 index 00000000..aca4528c --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/de-DE.json @@ -0,0 +1,8 @@ +{ + "culture": "de-DE", + "texts": { + "Menu:Home": "Home", + "Welcome": "Willkommen", + "LongWelcomeMessage": "Willkommen bei der Anwendung. Dies ist ein Startup-Projekt, das auf dem ABP-Framework basiert. Weitere Informationen finden Sie unter abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/en-GB.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/en-GB.json new file mode 100644 index 00000000..d2ca0793 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/en-GB.json @@ -0,0 +1,8 @@ +{ + "culture": "en-GB", + "texts": { + "Menu:Home": "Home", + "Welcome": "Welcome", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/en.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/en.json new file mode 100644 index 00000000..f44c9b4a --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/en.json @@ -0,0 +1,12 @@ +{ + "culture": "en", + "texts": { + "Menu:Home": "Home", + "Welcome": "Welcome", + "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io.", + "Toolbar:Cart": "My Cart", + "Toolbar:BasketNotLoaded": "Couldn't Load!", + "Toolbar:CartEmpty": "Cart is Empty!", + "ProductNotFound": "Could not find the product!" + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/es.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/es.json new file mode 100644 index 00000000..31b4b59e --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/es.json @@ -0,0 +1,8 @@ +{ + "culture": "es", + "texts": { + "Menu:Home": "Inicio", + "Welcome": "Bienvenido", + "LongWelcomeMessage": "Bienvenido a la aplicación, este es un proyecto base basado en el framework ABP. Para más información, visita abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/fi.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/fi.json new file mode 100644 index 00000000..a318859f --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/fi.json @@ -0,0 +1,8 @@ +{ + "culture": "fi", + "texts": { + "Menu:Home": "Koti", + "Welcome": "Tervetuloa", + "LongWelcomeMessage": "Tervetuloa sovellukseen. Tämä on ABP-kehykseen perustuva käynnistysprojekti. Lisätietoja on osoitteessa abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/fr.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/fr.json new file mode 100644 index 00000000..e76eac0c --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/fr.json @@ -0,0 +1,8 @@ +{ + "culture": "fr", + "texts": { + "Menu:Home": "Accueil", + "Welcome": "Bienvenue", + "LongWelcomeMessage": "Bienvenue dans l'application. Il s'agit d'un projet de démarrage basé sur le framework ABP. Pour plus d'informations, visitez abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/hi.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/hi.json new file mode 100644 index 00000000..a1676bfd --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/hi.json @@ -0,0 +1,8 @@ +{ + "culture": "hi", + "texts": { + "Menu:Home": "घर", + "Welcome": "स्वागत हे", + "LongWelcomeMessage": "आवेदन करने के लिए आपका स्वागत है। यह एबीपी ढांचे पर आधारित एक स्टार्टअप परियोजना है। अधिक जानकारी के लिए, abp.io पर जाएं।" + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/hu.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/hu.json new file mode 100644 index 00000000..c7b6a33a --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/hu.json @@ -0,0 +1,8 @@ +{ + "culture": "hu", + "texts": { + "Menu:Home": "Kezdőlap", + "Welcome": "Üdvözlöm", + "LongWelcomeMessage": "Üdvözöljük az alkalmazásban. Ez egy ABP keretrendszeren alapuló startup projekt. További információkért látogasson el az abp.io oldalra." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/it.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/it.json new file mode 100644 index 00000000..82ce42b0 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/it.json @@ -0,0 +1,8 @@ +{ + "culture": "it", + "texts": { + "Menu:Home": "Home", + "Welcome": "Benvenuto", + "LongWelcomeMessage": "Benvenuto nell'applicazione. Questo è un progetto di avvio basato sul framework ABP. Per ulteriori informazioni, visita abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/nl.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/nl.json new file mode 100644 index 00000000..9ba8da47 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/nl.json @@ -0,0 +1,8 @@ +{ + "culture": "nl", + "texts": { + "Menu:Home": "Home", + "Welcome": "Welkom", + "LongWelcomeMessage": "Welkom bij de applicatie. Dit is een startup-project gebaseerd op het ABP-framework. Bezoek abp.io voor meer informatie." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/pl-PL.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/pl-PL.json new file mode 100644 index 00000000..33412f30 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/pl-PL.json @@ -0,0 +1,8 @@ +{ + "culture": "pl-PL", + "texts": { + "Menu:Home": "Home", + "Welcome": "Witaj", + "LongWelcomeMessage": "Witaj w aplikacji. To jest inicjalny projekt bazujący na ABP framework. Po więcej informacji odwiedź stronę abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/pt-BR.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/pt-BR.json new file mode 100644 index 00000000..8c818a07 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/pt-BR.json @@ -0,0 +1,8 @@ +{ + "culture": "pt-BR", + "texts": { + "Menu:Home": "Principal", + "Welcome": "Seja bem-vindo!", + "LongWelcomeMessage": "Bem-vindo a esta aplicação. Este é um projeto inicial baseado no ABP framework. Para mais informações, visite abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ro-RO.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ro-RO.json new file mode 100644 index 00000000..1fe56019 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ro-RO.json @@ -0,0 +1,8 @@ +{ + "culture": "ro-RO", + "texts": { + "Menu:Home": "Acasă", + "Welcome": "Bun venit", + "LongWelcomeMessage": "Bun venit la aplicaţie. Acesta este un proiect de pornire bazat pe framework-ul ABP. Pentru mai multe informaţii, vizitaţi, visit abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ru.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ru.json new file mode 100644 index 00000000..8464e443 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/ru.json @@ -0,0 +1,8 @@ +{ + "culture": "ru", + "texts": { + "Menu:Home": "Главная", + "Welcome": "Добро пожаловать", + "LongWelcomeMessage": "Добро пожаловать в приложение. Этот запущенный проект основан на фреймворке ABP. Для получения дополнительной информации посетите сайт abp.io." + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/sk.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/sk.json new file mode 100644 index 00000000..4f35aaf1 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/sk.json @@ -0,0 +1,8 @@ +{ + "culture": "sk", + "texts": { + "Menu:Home": "Domov", + "Welcome": "Vitajte", + "LongWelcomeMessage": "Vitajte v aplikácii. Toto je štartovací projekt založený na ABP frameworku. Viac informácií nájdete na stránke abp.io." + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/sl.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/sl.json new file mode 100644 index 00000000..a066ef26 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/sl.json @@ -0,0 +1,8 @@ +{ + "culture": "sl", + "texts": { + "Menu:Home": "Domov", + "Welcome": "Dobrodošli", + "LongWelcomeMessage": "Dobrodošli v aplikaciji. To je začetni projekt na osnovi okolja ABP. Za več informacij obiščite abp.io." + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/tr.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/tr.json new file mode 100644 index 00000000..fc0fef09 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/tr.json @@ -0,0 +1,12 @@ +{ + "culture": "tr", + "texts": { + "Menu:Home": "Ana sayfa", + "Welcome": "Hoşgeldiniz", + "LongWelcomeMessage": "Uygulamaya hoşgeldiniz. Bu, ABP framework'ü üzerine bina edilmiş bir başlangıç projesidir. Daha fazla bilgi için abp.io adresini ziyaret edebilirsiniz.", + "Toolbar:Cart": "Sepetim", + "Toolbar:BasketNotLoaded": "Sepet Hatası!", + "Toolbar:CartEmpty": "Sepetiniz Boş", + "ProductNotFound": "Bu ürün bulunamadı!" + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/vi.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/vi.json new file mode 100644 index 00000000..c115a357 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/vi.json @@ -0,0 +1,8 @@ +{ + "culture": "vi", + "texts": { + "Menu:Home": "Trang chủ", + "Welcome": "Chào mừng bạn", + "LongWelcomeMessage": "Chào mừng bạn đến ứng dụng. Đây là một dự án khởi nghiệp dựa trên khung ABP. Để biết thêm thông tin, hãy truy cập abp.io." + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/zh-Hans.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/zh-Hans.json new file mode 100644 index 00000000..3c0ebef5 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/zh-Hans.json @@ -0,0 +1,10 @@ +{ + "culture": "zh-Hans", + "texts": { + "Menu:Home": "首页", + "Welcome": "欢迎", + "LongWelcomeMessage": "欢迎来到该应用程序. 这是一个基于ABP框架的启动项目. 有关更多信息, 请访问 abp.io.", + "Toolbar:Cart": "我的购物车", + "Toolbar:BasketNotLoaded": "无法加载!" + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/zh-Hant.json b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/zh-Hant.json new file mode 100644 index 00000000..31e0ab5a --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketService/zh-Hant.json @@ -0,0 +1,8 @@ +{ + "culture": "zh-Hant", + "texts": { + "Menu:Home": "首頁", + "Welcome": "歡迎", + "LongWelcomeMessage": "歡迎來到此應用程式. 這是一個基於ABP框架的起始專案. 有關更多訊息, 請瀏覽 abp.io." + } + } \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Localization/BasketServiceResource.cs b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketServiceResource.cs new file mode 100644 index 00000000..07aca7a0 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Localization/BasketServiceResource.cs @@ -0,0 +1,10 @@ +using Volo.Abp.Localization; + +namespace EShopOnAbp.BasketService.Localization +{ + [LocalizationResourceName("BasketService")] + public class BasketServiceResource + { + + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Program.cs b/services/basket/src/EShopOnAbp.BasketService/Program.cs new file mode 100644 index 00000000..ec8e4f41 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Program.cs @@ -0,0 +1,6 @@ +var builder = WebApplication.CreateBuilder(args); +var app = builder.Build(); + +app.MapGet("/", () => "Hello World!"); + +app.Run(); \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Properties/launchSettings.json b/services/basket/src/EShopOnAbp.BasketService/Properties/launchSettings.json new file mode 100644 index 00000000..75ea0aca --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Properties/launchSettings.json @@ -0,0 +1,28 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:43756", + "sslPort": 44365 + } + }, + "profiles": { + "EShopOnAbp.BasketService": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7198;http://localhost:5198", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/BasketAppService.cs b/services/basket/src/EShopOnAbp.BasketService/Services/BasketAppService.cs new file mode 100644 index 00000000..7cbe07d8 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/BasketAppService.cs @@ -0,0 +1,124 @@ +using EShopOnAbp.BasketService.Entities; +using EShopOnAbp.BasketService.Localization; +using EShopOnAbp.BasketService.Services.Dtos; +using EShopOnAbp.CatalogService.Products; +using Volo.Abp; +using Volo.Abp.Application.Services; +using Volo.Abp.Users; + +namespace EShopOnAbp.BasketService.Services; + +public class BasketAppService : ApplicationService, IBasketAppService +{ + private readonly IBasketRepository _basketRepository; + private readonly IBasketProductService _basketProductService; + + public BasketAppService( + IBasketRepository basketRepository, + IBasketProductService basketProductService) + { + _basketRepository = basketRepository; + _basketProductService = basketProductService; + LocalizationResource = typeof(BasketServiceResource); + } + + public async Task GetAsync(Guid? anonymousUserId) + { + if (anonymousUserId != null && CurrentUser.IsAuthenticated) + { + var userBasket = await _basketRepository.GetAsync(CurrentUser.GetId()); + var anonymousUserBasket = await _basketRepository.GetAsync(anonymousUserId.Value); + + userBasket.Merge(anonymousUserBasket); + await _basketRepository.UpdateAsync(userBasket); + + anonymousUserBasket.Clear(); + await _basketRepository.UpdateAsync(anonymousUserBasket); + + return await GetBasketDtoAsync(userBasket); + } + + if (anonymousUserId != null && !CurrentUser.IsAuthenticated) + { + return await GetBasketDtoAsync(await _basketRepository.GetAsync(anonymousUserId.Value)); + } + + return await GetBasketDtoAsync(await _basketRepository.GetAsync(CurrentUser.GetId())); + } + + public async Task AddProductAsync(AddProductDto input) + { + Guid userId = CurrentUser.IsAuthenticated ? CurrentUser.GetId() : input.AnonymousId.GetValueOrDefault(); + + var basket = await _basketRepository.GetAsync(userId); + var product = await _basketProductService.GetAsync(input.ProductId); + + if (basket.GetProductCount(product.Id) >= product.StockCount) + { + throw new UserFriendlyException("There is not enough product in stock, sorry :("); + } + + basket.AddProduct(product.Id); + + await _basketRepository.UpdateAsync(basket); + + return await GetBasketDtoAsync(basket); + } + + public async Task RemoveProductAsync(RemoveProductDto input) + { + Guid userId = CurrentUser.IsAuthenticated ? CurrentUser.GetId() : input.AnonymousId.GetValueOrDefault(); + + var basket = await _basketRepository.GetAsync(userId); + var product = await _basketProductService.GetAsync(input.ProductId); + + basket.RemoveProduct(product.Id, input.Count); + + await _basketRepository.UpdateAsync(basket); + + return await GetBasketDtoAsync(basket); + } + + private async Task GetBasketDtoAsync(Basket basket) + { + var products = new Dictionary(); + var basketDto = new BasketDto(); + var basketChanged = false; + + foreach (var basketItem in basket.Items) + { + var productDto = products.GetOrDefault(basketItem.ProductId); + if (productDto == null) + { + productDto = await _basketProductService.GetAsync(basketItem.ProductId); + products[productDto.Id] = productDto; + } + + //Removing the products if not available in the stock + if (basketItem.Count > productDto.StockCount) + { + basket.RemoveProduct(basketItem.ProductId, basketItem.Count - productDto.StockCount); + basketChanged = true; + } + + basketDto.Items.Add(new BasketItemDto + { + ProductId = basketItem.ProductId, + Count = basketItem.Count, + ProductCode = productDto.Code, + ImageName = productDto.ImageName, + ProductName = productDto.Name, + TotalPrice = productDto.Price * basketItem.Count + }); + } + + basketDto.TotalPrice = basketDto.Items.Sum(x => x.TotalPrice); + + if (basketChanged) + { + await _basketRepository.UpdateAsync(basket); + } + + return basketDto; + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/BasketProductEventHandler.cs b/services/basket/src/EShopOnAbp.BasketService/Services/BasketProductEventHandler.cs new file mode 100644 index 00000000..ced0798d --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/BasketProductEventHandler.cs @@ -0,0 +1,46 @@ +using EShopOnAbp.BasketService.Entities; +using EShopOnAbp.CatalogService.Products; +using Volo.Abp.Caching; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Entities.Events.Distributed; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.ObjectMapping; + +namespace EShopOnAbp.BasketService.Services; + +public class BasketProductEventHandler : IDistributedEventHandler>, ITransientDependency +{ + private readonly IDistributedCache _cache; + private readonly IObjectMapper _objectMapper; + private readonly IDistributedEventBus _distributedEventBus; + + public BasketProductEventHandler( + IDistributedCache cache, + IObjectMapper objectMapper, + IDistributedEventBus distributedEventBus) + { + _cache = cache; + _objectMapper = objectMapper; + _distributedEventBus = distributedEventBus; + } + + public async Task HandleEventAsync(EntityUpdatedEto eventData) + { + var cachedProductDto = await _cache.GetAsync(eventData.Entity.Id); + if (cachedProductDto == null) + { + return; + } + + _objectMapper.Map(eventData.Entity, cachedProductDto); + + await _cache.SetAsync(eventData.Entity.Id, cachedProductDto); + + await _distributedEventBus.PublishAsync( + new BasketProductUpdatedEto + { + ProductId = eventData.Entity.Id, + ProductName = eventData.Entity.Name + }); + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/BasketProductService.cs b/services/basket/src/EShopOnAbp.BasketService/Services/BasketProductService.cs new file mode 100644 index 00000000..b3a19472 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/BasketProductService.cs @@ -0,0 +1,46 @@ +using EShopOnAbp.CatalogService.Grpc; +using EShopOnAbp.CatalogService.Products; +using Volo.Abp; +using Volo.Abp.Caching; +using Volo.Abp.DependencyInjection; +using Volo.Abp.ObjectMapping; + +namespace EShopOnAbp.BasketService.Services; + +public class BasketProductService : IBasketProductService, ITransientDependency +{ + private readonly IDistributedCache _cache; + private readonly ILogger _logger; + private readonly IObjectMapper _mapper; + private readonly ProductPublic.ProductPublicClient _productPublicGrpcClient; + + public BasketProductService( + IDistributedCache cache, + ILogger logger, + IObjectMapper mapper, + ProductPublic.ProductPublicClient productPublicGrpcClient) + { + _cache = cache; + _logger = logger; + _mapper = mapper; + _productPublicGrpcClient = productPublicGrpcClient; + } + + public async Task GetAsync(Guid productId) + { + return await _cache.GetOrAddAsync( + productId, + () => GetProductAsync(productId) + ); + } + + private async Task GetProductAsync(Guid productId) + { + var request = new ProductRequest { Id = productId.ToString() }; + _logger.LogInformation("=== GRPC request {@request}", request); + var response = await _productPublicGrpcClient.GetByIdAsync(request); + _logger.LogInformation("=== GRPC response {@response}", response); + return _mapper.Map(response) ?? + throw new UserFriendlyException(BasketServiceDomainErrorCodes.ProductNotFound); + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/AddProductDto.cs b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/AddProductDto.cs new file mode 100644 index 00000000..9a9db3ce --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/AddProductDto.cs @@ -0,0 +1,13 @@ +using System.ComponentModel.DataAnnotations; + +namespace EShopOnAbp.BasketService.Services.Dtos; + +public class AddProductDto : IHasAnonymousId +{ + public Guid ProductId { get; set; } + + [Range(1, int.MaxValue)] + public int Count { get; set; } = 1; + + public Guid? AnonymousId { get; set; } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/BasketDto.cs b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/BasketDto.cs new file mode 100644 index 00000000..16208787 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/BasketDto.cs @@ -0,0 +1,12 @@ +namespace EShopOnAbp.BasketService.Services.Dtos; + +public class BasketDto +{ + public float TotalPrice { get; set; } + public List Items { get; set; } + + public BasketDto() + { + Items = new List(); + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/BasketItemDto.cs b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/BasketItemDto.cs new file mode 100644 index 00000000..44a03a40 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/BasketItemDto.cs @@ -0,0 +1,11 @@ +namespace EShopOnAbp.BasketService.Services.Dtos; + +public class BasketItemDto +{ + public Guid ProductId { get; set; } + public string ProductName { get; set; } + public string ProductCode { get; set; } + public string ImageName { get; set; } + public int Count { get; set; } + public float TotalPrice { get; set; } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/IHasAnonymousId.cs b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/IHasAnonymousId.cs new file mode 100644 index 00000000..3c539770 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/IHasAnonymousId.cs @@ -0,0 +1,7 @@ +namespace EShopOnAbp.BasketService.Services.Dtos +{ + public interface IHasAnonymousId + { + Guid? AnonymousId { get; } + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/RemoveProductDto.cs b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/RemoveProductDto.cs new file mode 100644 index 00000000..bd481712 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/Dtos/RemoveProductDto.cs @@ -0,0 +1,10 @@ +namespace EShopOnAbp.BasketService.Services.Dtos; + +public class RemoveProductDto : IHasAnonymousId +{ + public Guid ProductId { get; set; } + + public int? Count { get; set; } + + public Guid? AnonymousId { get; set; } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/IBasketAppService.cs b/services/basket/src/EShopOnAbp.BasketService/Services/IBasketAppService.cs new file mode 100644 index 00000000..bbe18e5a --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/IBasketAppService.cs @@ -0,0 +1,11 @@ +using EShopOnAbp.BasketService.Services.Dtos; +using Volo.Abp.Application.Services; + +namespace EShopOnAbp.BasketService.Services; + +public interface IBasketAppService : IApplicationService +{ + Task GetAsync(Guid? anonymousUserId); + Task AddProductAsync(AddProductDto input); + Task RemoveProductAsync(RemoveProductDto input); +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/IBasketProductService.cs b/services/basket/src/EShopOnAbp.BasketService/Services/IBasketProductService.cs new file mode 100644 index 00000000..1288112c --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/IBasketProductService.cs @@ -0,0 +1,12 @@ +using System; +using System.Threading.Tasks; +using EShopOnAbp.CatalogService.Products; +using JetBrains.Annotations; + +namespace EShopOnAbp.BasketService; + +public interface IBasketProductService +{ + [ItemNotNull] + Task GetAsync(Guid productId); +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/Permissions/BasketServicePermissionDefinitionProvider.cs b/services/basket/src/EShopOnAbp.BasketService/Services/Permissions/BasketServicePermissionDefinitionProvider.cs new file mode 100644 index 00000000..147464a5 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/Permissions/BasketServicePermissionDefinitionProvider.cs @@ -0,0 +1,21 @@ +using EShopOnAbp.BasketService.Localization; +using Volo.Abp.Authorization.Permissions; +using Volo.Abp.Localization; + +namespace EShopOnAbp.BasketService.Services.Permissions +{ + public class BasketServicePermissionDefinitionProvider : PermissionDefinitionProvider + { + public override void Define(IPermissionDefinitionContext context) + { + var myGroup = context.AddGroup(BasketServicePermissions.GroupName); + //Define your own permissions here. Example: + //myGroup.AddPermission(BasketServicePermissions.MyPermission1, L("Permission:MyPermission1")); + } + + private static LocalizableString L(string name) + { + return LocalizableString.Create(name); + } + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/Services/Permissions/BasketServicePermissions.cs b/services/basket/src/EShopOnAbp.BasketService/Services/Permissions/BasketServicePermissions.cs new file mode 100644 index 00000000..877cf2f9 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Services/Permissions/BasketServicePermissions.cs @@ -0,0 +1,10 @@ +namespace EShopOnAbp.BasketService.Services.Permissions +{ + public static class BasketServicePermissions + { + public const string GroupName = "BasketService"; + + //Add your own permission names. Example: + //public const string MyPermission1 = GroupName + ".MyPermission1"; + } +} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/appsettings.Development.json b/services/basket/src/EShopOnAbp.BasketService/appsettings.Development.json new file mode 100644 index 00000000..0c208ae9 --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/services/basket/src/EShopOnAbp.BasketService/appsettings.json b/services/basket/src/EShopOnAbp.BasketService/appsettings.json new file mode 100644 index 00000000..93adbecc --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/appsettings.json @@ -0,0 +1,49 @@ +{ + "App": { + "SelfUrl": "https://localhost:44355", + "CorsOrigins": "https://localhost:44372,https://localhost:44373,https://localhost:44335" + }, + "AuthServer": { + "Authority": "https://localhost:44330", + "RequireHttpsMetadata": "true", + "SwaggerClientId": "WebGateway_Swagger", + "SwaggerClientSecret": "1q2w3e*" + }, + "RemoteServices": { + "Catalog": { + "BaseUrl": "https://localhost:44354/", + "GrpcUrl": "http://localhost:81" + } + }, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft": "Warning", + "Microsoft.Hosting.Lifetime": "Information" + } + }, + "AllowedHosts": "*", + "ConnectionStrings": { + "AdministrationService": "User ID=postgres;Password=myPassw0rd;Host=localhost;Port=5432;Database=EShopOnAbp_Administration;Pooling=false;" + }, + "StringEncryption": { + "DefaultPassPhrase": "3PfxLgcuymUUbihz" + }, + "Redis": { + "Configuration": "localhost:6379" + }, + "RabbitMQ": { + "Connections": { + "Default": { + "HostName": "localhost" + } + }, + "EventBus": { + "ClientName": "EShopOnAbp_BasketService", + "ExchangeName": "EShopOnAbp" + } + }, + "ElasticSearch": { + "Url": "http://localhost:9200" + } +} \ No newline at end of file From a7bbaf7a9f38660dcd1a1ad9cfc2ed18a602dc6a Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 15 Feb 2022 00:58:15 +0300 Subject: [PATCH 02/17] added module dependencies and fixed project references --- .../BasketServiceModule.cs | 41 +++++++++--- .../EShopOnAbp.BasketService.csproj | 62 +++++++------------ .../src/EShopOnAbp.BasketService/Program.cs | 36 +++++++++-- 3 files changed, 87 insertions(+), 52 deletions(-) diff --git a/services/basket/src/EShopOnAbp.BasketService/BasketServiceModule.cs b/services/basket/src/EShopOnAbp.BasketService/BasketServiceModule.cs index 5d1b9984..2e937112 100644 --- a/services/basket/src/EShopOnAbp.BasketService/BasketServiceModule.cs +++ b/services/basket/src/EShopOnAbp.BasketService/BasketServiceModule.cs @@ -1,5 +1,6 @@ using EShopOnAbp.BasketService.Entities; using EShopOnAbp.BasketService.Localization; +using EShopOnAbp.CatalogService; using EShopOnAbp.CatalogService.Grpc; using EShopOnAbp.Shared.Hosting.AspNetCore; using EShopOnAbp.Shared.Hosting.Microservices; @@ -7,19 +8,32 @@ using Microsoft.AspNetCore.Cors; using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Options; using Volo.Abp; +using Volo.Abp.Application; +using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.AntiForgery; +using Volo.Abp.Authorization; using Volo.Abp.AutoMapper; using Volo.Abp.Caching; +using Volo.Abp.Domain; using Volo.Abp.Http.Client; using Volo.Abp.Localization; using Volo.Abp.Localization.ExceptionHandling; using Volo.Abp.Modularity; +using Volo.Abp.Validation; using Volo.Abp.Validation.Localization; using Volo.Abp.VirtualFileSystem; namespace EShopOnAbp.BasketService { - [DependsOn( + [DependsOn(typeof(AbpAuthorizationModule), + typeof(AbpAspNetCoreMvcModule), + typeof(AbpAutoMapperModule), + typeof(AbpCachingModule), + typeof(AbpDddApplicationModule), + typeof(AbpDddDomainModule), + typeof(AbpValidationModule), + typeof(CatalogServiceHttpApiClientModule), + typeof(EShopOnAbpSharedHostingMicroservicesModule) )] public class BasketServiceModule : AbpModule { @@ -37,6 +51,8 @@ namespace EShopOnAbp.BasketService ConfigureLocalization(); ConfigureHttpApiProxy(context); ConfigureAuthentication(context, configuration); + ConfigureSwagger(context, configuration); + ConfigureAutoApiControllers(); } public override void OnApplicationInitialization(ApplicationInitializationContext context) @@ -70,11 +86,9 @@ namespace EShopOnAbp.BasketService app.UseUnitOfWork(); app.UseConfiguredEndpoints(); } - - private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration) + + private void ConfigureSwagger(ServiceConfigurationContext context, IConfiguration configuration) { - JwtBearerConfigurationHelper.Configure(context, "BasketService"); - SwaggerWithAuthConfigurationHelper.Configure( context: context, authority: configuration["AuthServer:Authority"], @@ -85,6 +99,11 @@ namespace EShopOnAbp.BasketService }, apiTitle: "Basket Service API" ); + } + + private void ConfigureAuthentication(ServiceConfigurationContext context, IConfiguration configuration) + { + JwtBearerConfigurationHelper.Configure(context, "BasketService"); context.Services.AddCors(options => { @@ -108,10 +127,18 @@ namespace EShopOnAbp.BasketService Configure(options => { options.AutoValidate = false; }); } + private void ConfigureAutoApiControllers() + { + Configure(options => + { + options.ConventionalControllers.Create(typeof(BasketServiceModule).Assembly); + }); + } + private void ConfigureHttpApiProxy(ServiceConfigurationContext context) { context.Services.AddStaticHttpClientProxies( - typeof(BasketServiceApplicationContractsModule).Assembly, + typeof(BasketServiceModule).Assembly, RemoteServiceName ); } @@ -132,7 +159,7 @@ namespace EShopOnAbp.BasketService { Configure(options => { - options.AddMaps(); + options.AddMaps(); }); } diff --git a/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj b/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj index 23c87340..ff12543a 100644 --- a/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj +++ b/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj @@ -1,67 +1,47 @@ + + net6.0 enable enable - - + + + - - - - - - - - - - - + + + + - - - - - - - + + + - - - - - - - - - - + + - - + - - + - - + - - - + + - + - + diff --git a/services/basket/src/EShopOnAbp.BasketService/Program.cs b/services/basket/src/EShopOnAbp.BasketService/Program.cs index ec8e4f41..92622bd2 100644 --- a/services/basket/src/EShopOnAbp.BasketService/Program.cs +++ b/services/basket/src/EShopOnAbp.BasketService/Program.cs @@ -1,6 +1,34 @@ -var builder = WebApplication.CreateBuilder(args); -var app = builder.Build(); +using EShopOnAbp.Shared.Hosting.AspNetCore; +using Serilog; -app.MapGet("/", () => "Hello World!"); +namespace EShopOnAbp.BasketService; -app.Run(); \ No newline at end of file +public class Program +{ + public static async Task Main(string[] args) + { + var assemblyName = typeof(Program).Assembly.GetName().Name; + + SerilogConfigurationHelper.Configure(assemblyName); + + try + { + Log.Information($"Starting {assemblyName}."); + var app = await ApplicationBuilderHelper + .BuildApplicationAsync(args); + await app.InitializeApplicationAsync(); + await app.RunAsync(); + + return 0; + } + catch (Exception ex) + { + Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); + return 1; + } + finally + { + Log.CloseAndFlush(); + } + } +} \ No newline at end of file From e054380397afc4d123e271f5bfd51726e9279f27 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 15 Feb 2022 01:01:25 +0300 Subject: [PATCH 03/17] added dockerfiles --- .../src/EShopOnAbp.BasketService/Dockerfile | 51 +++++++++++++++++++ .../EShopOnAbp.BasketService/Dockerfile.local | 4 ++ .../EShopOnAbp.BasketService.csproj | 2 +- 3 files changed, 56 insertions(+), 1 deletion(-) create mode 100644 services/basket/src/EShopOnAbp.BasketService/Dockerfile create mode 100644 services/basket/src/EShopOnAbp.BasketService/Dockerfile.local diff --git a/services/basket/src/EShopOnAbp.BasketService/Dockerfile b/services/basket/src/EShopOnAbp.BasketService/Dockerfile new file mode 100644 index 00000000..d5320a5d --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Dockerfile @@ -0,0 +1,51 @@ +FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base +WORKDIR /app +EXPOSE 80 +EXPOSE 443 + +FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build +WORKDIR /src + +# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles +# to take advantage of Docker's build cache, to speed up local container builds +COPY "EShopOnAbp.sln" "EShopOnAbp.sln" + +# Applications +COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" +COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" + +# Shared +COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" +COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" +COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" + +# Microservices +COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" +COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" +COPY *"services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj" "services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj" +COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" +COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" +COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" + +# Gateways +COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" +COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" + +COPY "NuGet.Config" "NuGet.Config" + +RUN dotnet restore "EShopOnAbp.sln" +COPY . . + +WORKDIR "/src/services/basket/src/EShopOnAbp.BasketService" +RUN dotnet publish -c Release -o /app +# Should be used after .net6 is out of preview for better performance +# RUN dotnet publish --no-restore -c Release -o /app + +FROM build AS publish + +FROM base AS final +WORKDIR /app +COPY --from=publish /app . +ENTRYPOINT ["dotnet", "EShopOnAbp.BasketService.dll"] \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/Dockerfile.local b/services/basket/src/EShopOnAbp.BasketService/Dockerfile.local new file mode 100644 index 00000000..bbdd955b --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/Dockerfile.local @@ -0,0 +1,4 @@ + FROM mcr.microsoft.com/dotnet/aspnet:6.0 + COPY bin/Release/net6.0/publish/ app/ + WORKDIR /app + ENTRYPOINT ["dotnet", "EShopOnAbp.BasketService.dll"] \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj b/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj index ff12543a..a964503c 100644 --- a/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj +++ b/services/basket/src/EShopOnAbp.BasketService/EShopOnAbp.BasketService.csproj @@ -14,7 +14,7 @@ - + From 6f4e45e396613428fa7d236b6e9c35b2261b57c1 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 15 Feb 2022 01:05:19 +0300 Subject: [PATCH 04/17] removed layered projects --- services/basket/EShopOnAbp.BasketService.sln | 84 --------- .../AddProductDto.cs | 14 -- .../BasketDto.cs | 14 -- .../BasketItemDto.cs | 13 -- ...BasketServiceApplicationContractsModule.cs | 21 --- .../BasketServiceDtoExtensions.cs | 27 --- ...BasketService.Application.Contracts.csproj | 19 -- .../IBasketAppService.cs | 12 -- .../IHasAnonymousId.cs | 9 - ...sketServicePermissionDefinitionProvider.cs | 21 --- .../Permissions/BasketServicePermissions.cs | 10 -- .../RemoveProductDto.cs | 12 -- .../BasketAppService.cs | 123 ------------- .../BasketProductEventHandler.cs | 47 ----- .../BasketProductService.cs | 49 ----- .../BasketServiceAppService.cs | 18 -- ...sketServiceApplicationAutoMapperProfile.cs | 15 -- .../BasketServiceApplicationModule.cs | 41 ----- ...ShopOnAbp.BasketService.Application.csproj | 31 ---- .../IBasketProductService.cs | 12 -- .../Properties/AssemblyInfo.cs | 2 - .../BasketProductUpdatedEto.cs | 9 - .../BasketServiceDomainErrorCodes.cs | 8 - .../BasketServiceDomainSharedModule.cs | 47 ----- .../BasketServiceGlobalFeatureConfigurator.cs | 23 --- ...asketServiceModuleExtensionConfigurator.cs | 69 -------- ...opOnAbp.BasketService.Domain.Shared.csproj | 28 --- .../Localization/BasketService/ar.json | 8 - .../Localization/BasketService/cs.json | 8 - .../Localization/BasketService/de-DE.json | 8 - .../Localization/BasketService/en-GB.json | 8 - .../Localization/BasketService/en.json | 12 -- .../Localization/BasketService/es.json | 8 - .../Localization/BasketService/fi.json | 8 - .../Localization/BasketService/fr.json | 8 - .../Localization/BasketService/hi.json | 8 - .../Localization/BasketService/hu.json | 8 - .../Localization/BasketService/it.json | 8 - .../Localization/BasketService/nl.json | 8 - .../Localization/BasketService/pl-PL.json | 8 - .../Localization/BasketService/pt-BR.json | 8 - .../Localization/BasketService/ro-RO.json | 8 - .../Localization/BasketService/ru.json | 8 - .../Localization/BasketService/sk.json | 8 - .../Localization/BasketService/sl.json | 8 - .../Localization/BasketService/tr.json | 12 -- .../Localization/BasketService/vi.json | 8 - .../Localization/BasketService/zh-Hans.json | 10 -- .../Localization/BasketService/zh-Hant.json | 8 - .../Localization/BasketServiceResource.cs | 10 -- .../EShopOnAbp.BasketService.Domain/Basket.cs | 80 --------- .../BasketItem.cs | 20 --- .../BasketRepository.cs | 25 --- .../BasketServiceDomainModule.cs | 35 ---- .../EShopOnAbp.BasketService.Domain.csproj | 19 -- .../IBasketRepository.cs | 12 -- .../Orders/OrderPlacedEventHandler.cs | 26 --- .../Properties/AssemblyInfo.cs | 3 - .../BasketServiceSettingDefinitionProvider.cs | 13 -- .../Settings/BasketServiceSettings.cs | 10 -- .../BasketServiceHttpApiClientModule.cs | 29 --- .../BasketClientProxy.Generated.cs | 41 ----- .../ClientProxies/BasketClientProxy.cs | 7 - .../ClientProxies/basket-generate-proxy.json | 167 ------------------ ...pOnAbp.BasketService.HttpApi.Client.csproj | 23 --- .../BasketServiceHttpApiHostModule.cs | 108 ----------- .../Controllers/HomeController.cs | 13 -- .../Dockerfile | 51 ------ .../Dockerfile.local | 4 - ...hopOnAbp.BasketService.HttpApi.Host.csproj | 28 --- .../Program.cs | 37 ---- .../Properties/launchSettings.json | 27 --- .../appsettings.Development.json | 2 - .../appsettings.json | 49 ----- .../appsettings.secrets.json | 2 - .../tempkey.rsa | 1 - .../BasketServiceHttpApiModule.cs | 32 ---- .../Controllers/BasketServiceController.cs | 15 -- .../EShopOnAbp.BasketService.HttpApi.csproj | 18 -- .../BasketServiceDomainErrorCodes.cs | 7 + .../BasketServiceApplicationTestBase.cs | 7 - .../BasketServiceApplicationTestModule.cs | 13 -- ...Abp.BasketService.Application.Tests.csproj | 19 -- .../BasketServiceDomainTestBase.cs | 7 - .../BasketServiceDomainTestModule.cs | 11 -- ...hopOnAbp.BasketService.Domain.Tests.csproj | 18 -- ...etService.EntityFrameworkCore.Tests.csproj | 19 -- .../BasketServiceConsoleApiClientModule.cs | 29 --- .../ConsoleTestAppHostedService.cs | 37 ---- ...rvice.HttpApi.Client.ConsoleTestApp.csproj | 31 ---- .../Program.cs | 23 --- .../appsettings.json | 18 -- .../appsettings.secrets.json | 2 - .../BasketServiceTestBase.cs | 61 ------- .../BasketServiceTestBaseModule.cs | 48 ----- .../BasketServiceTestDataSeedContributor.cs | 16 -- .../EShopOnAbp.BasketService.TestBase.csproj | 26 --- .../Security/FakeCurrentPrincipalAccessor.cs | 43 ----- 98 files changed, 7 insertions(+), 2299 deletions(-) delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/AddProductDto.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketDto.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketItemDto.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketServiceApplicationContractsModule.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketServiceDtoExtensions.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/EShopOnAbp.BasketService.Application.Contracts.csproj delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/IBasketAppService.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/IHasAnonymousId.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/Permissions/BasketServicePermissionDefinitionProvider.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/Permissions/BasketServicePermissions.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application.Contracts/RemoveProductDto.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/BasketAppService.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/BasketProductEventHandler.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/BasketProductService.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceAppService.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceApplicationAutoMapperProfile.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceApplicationModule.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/EShopOnAbp.BasketService.Application.csproj delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/IBasketProductService.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Application/Properties/AssemblyInfo.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketProductUpdatedEto.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceDomainErrorCodes.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceDomainSharedModule.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceGlobalFeatureConfigurator.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceModuleExtensionConfigurator.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/EShopOnAbp.BasketService.Domain.Shared.csproj delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ar.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/cs.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/de-DE.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/en-GB.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/en.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/es.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/fi.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/fr.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/hi.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/hu.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/it.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/nl.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/pl-PL.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/pt-BR.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ro-RO.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ru.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/sk.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/sl.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/tr.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/vi.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/zh-Hans.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/zh-Hant.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketServiceResource.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/Basket.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/BasketItem.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/BasketRepository.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/BasketServiceDomainModule.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/EShopOnAbp.BasketService.Domain.csproj delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/IBasketRepository.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/Orders/OrderPlacedEventHandler.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/Properties/AssemblyInfo.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/Settings/BasketServiceSettingDefinitionProvider.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.Domain/Settings/BasketServiceSettings.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/BasketServiceHttpApiClientModule.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/BasketClientProxy.Generated.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/BasketClientProxy.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/basket-generate-proxy.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/EShopOnAbp.BasketService.HttpApi.Client.csproj delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/BasketServiceHttpApiHostModule.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Controllers/HomeController.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile.local delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Program.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Properties/launchSettings.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.Development.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.secrets.json delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/tempkey.rsa delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi/BasketServiceHttpApiModule.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi/Controllers/BasketServiceController.cs delete mode 100644 services/basket/src/EShopOnAbp.BasketService.HttpApi/EShopOnAbp.BasketService.HttpApi.csproj create mode 100644 services/basket/src/EShopOnAbp.BasketService/BasketServiceDomainErrorCodes.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.Application.Tests/BasketServiceApplicationTestBase.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.Application.Tests/BasketServiceApplicationTestModule.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.Application.Tests/EShopOnAbp.BasketService.Application.Tests.csproj delete mode 100644 services/basket/test/EShopOnAbp.BasketService.Domain.Tests/BasketServiceDomainTestBase.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.Domain.Tests/BasketServiceDomainTestModule.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.Domain.Tests/EShopOnAbp.BasketService.Domain.Tests.csproj delete mode 100644 services/basket/test/EShopOnAbp.BasketService.EntityFrameworkCore.Tests/EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj delete mode 100644 services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/BasketServiceConsoleApiClientModule.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj delete mode 100644 services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/Program.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/appsettings.json delete mode 100644 services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json delete mode 100644 services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestBase.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestBaseModule.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestDataSeedContributor.cs delete mode 100644 services/basket/test/EShopOnAbp.BasketService.TestBase/EShopOnAbp.BasketService.TestBase.csproj delete mode 100644 services/basket/test/EShopOnAbp.BasketService.TestBase/Security/FakeCurrentPrincipalAccessor.cs diff --git a/services/basket/EShopOnAbp.BasketService.sln b/services/basket/EShopOnAbp.BasketService.sln index 48f58826..68cb5262 100644 --- a/services/basket/EShopOnAbp.BasketService.sln +++ b/services/basket/EShopOnAbp.BasketService.sln @@ -3,34 +3,10 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31717.71 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.Domain", "src\EShopOnAbp.BasketService.Domain\EShopOnAbp.BasketService.Domain.csproj", "{554AD327-6DBA-4F8F-96F8-81CE7A0C863F}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.Application", "src\EShopOnAbp.BasketService.Application\EShopOnAbp.BasketService.Application.csproj", "{1A94A50E-06DC-43C1-80B5-B662820EC3EB}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{CA9AC87F-097E-4F15-8393-4BC07735A5B0}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{04DBDB01-70F4-4E06-B468-8F87850B22BE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.Application.Tests", "test\EShopOnAbp.BasketService.Application.Tests\EShopOnAbp.BasketService.Application.Tests.csproj", "{50B2631D-129C-47B3-A587-029CCD6099BC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.Domain.Shared", "src\EShopOnAbp.BasketService.Domain.Shared\EShopOnAbp.BasketService.Domain.Shared.csproj", "{42F719ED-8413-4895-B5B4-5AB56079BC66}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.Application.Contracts", "src\EShopOnAbp.BasketService.Application.Contracts\EShopOnAbp.BasketService.Application.Contracts.csproj", "{520659C8-C734-4298-A3DA-B539DB9DFC0B}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.HttpApi", "src\EShopOnAbp.BasketService.HttpApi\EShopOnAbp.BasketService.HttpApi.csproj", "{4164BDF7-F527-4E85-9CE6-E3C2D7426A27}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.HttpApi.Client", "src\EShopOnAbp.BasketService.HttpApi.Client\EShopOnAbp.BasketService.HttpApi.Client.csproj", "{3B5A0094-670D-4BB1-BFDD-61B88A8773DC}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.EntityFrameworkCore.Tests", "test\EShopOnAbp.BasketService.EntityFrameworkCore.Tests\EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj", "{1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.TestBase", "test\EShopOnAbp.BasketService.TestBase\EShopOnAbp.BasketService.TestBase.csproj", "{91853F21-9CD9-4132-BC29-A7D5D84FFFE7}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.Domain.Tests", "test\EShopOnAbp.BasketService.Domain.Tests\EShopOnAbp.BasketService.Domain.Tests.csproj", "{E512F4D9-9375-480F-A2F6-A46509F9D824}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp", "test\EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp\EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj", "{EF480016-9127-4916-8735-D2466BDBC582}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.HttpApi.Host", "src\EShopOnAbp.BasketService.HttpApi.Host\EShopOnAbp.BasketService.HttpApi.Host.csproj", "{748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EShopOnAbp.BasketService", "src\EShopOnAbp.BasketService\EShopOnAbp.BasketService.csproj", "{83F0BE02-6B71-4695-B86F-18DEEE34B485}" EndProject Global @@ -39,54 +15,6 @@ Global Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {554AD327-6DBA-4F8F-96F8-81CE7A0C863F}.Release|Any CPU.Build.0 = Release|Any CPU - {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1A94A50E-06DC-43C1-80B5-B662820EC3EB}.Release|Any CPU.Build.0 = Release|Any CPU - {50B2631D-129C-47B3-A587-029CCD6099BC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {50B2631D-129C-47B3-A587-029CCD6099BC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {50B2631D-129C-47B3-A587-029CCD6099BC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {50B2631D-129C-47B3-A587-029CCD6099BC}.Release|Any CPU.Build.0 = Release|Any CPU - {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {42F719ED-8413-4895-B5B4-5AB56079BC66}.Debug|Any CPU.Build.0 = Debug|Any CPU - {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.ActiveCfg = Release|Any CPU - {42F719ED-8413-4895-B5B4-5AB56079BC66}.Release|Any CPU.Build.0 = Release|Any CPU - {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {520659C8-C734-4298-A3DA-B539DB9DFC0B}.Release|Any CPU.Build.0 = Release|Any CPU - {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4164BDF7-F527-4E85-9CE6-E3C2D7426A27}.Release|Any CPU.Build.0 = Release|Any CPU - {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3B5A0094-670D-4BB1-BFDD-61B88A8773DC}.Release|Any CPU.Build.0 = Release|Any CPU - {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81}.Release|Any CPU.Build.0 = Release|Any CPU - {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {91853F21-9CD9-4132-BC29-A7D5D84FFFE7}.Release|Any CPU.Build.0 = Release|Any CPU - {E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E512F4D9-9375-480F-A2F6-A46509F9D824}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E512F4D9-9375-480F-A2F6-A46509F9D824}.Release|Any CPU.Build.0 = Release|Any CPU - {EF480016-9127-4916-8735-D2466BDBC582}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EF480016-9127-4916-8735-D2466BDBC582}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EF480016-9127-4916-8735-D2466BDBC582}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EF480016-9127-4916-8735-D2466BDBC582}.Release|Any CPU.Build.0 = Release|Any CPU - {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D}.Release|Any CPU.Build.0 = Release|Any CPU {83F0BE02-6B71-4695-B86F-18DEEE34B485}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {83F0BE02-6B71-4695-B86F-18DEEE34B485}.Debug|Any CPU.Build.0 = Debug|Any CPU {83F0BE02-6B71-4695-B86F-18DEEE34B485}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -96,18 +24,6 @@ Global HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {554AD327-6DBA-4F8F-96F8-81CE7A0C863F} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} - {1A94A50E-06DC-43C1-80B5-B662820EC3EB} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} - {50B2631D-129C-47B3-A587-029CCD6099BC} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} - {42F719ED-8413-4895-B5B4-5AB56079BC66} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} - {520659C8-C734-4298-A3DA-B539DB9DFC0B} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} - {4164BDF7-F527-4E85-9CE6-E3C2D7426A27} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} - {3B5A0094-670D-4BB1-BFDD-61B88A8773DC} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} - {1FE30EB9-74A9-47F5-A9F6-7B1FAB672D81} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} - {91853F21-9CD9-4132-BC29-A7D5D84FFFE7} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} - {E512F4D9-9375-480F-A2F6-A46509F9D824} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} - {EF480016-9127-4916-8735-D2466BDBC582} = {04DBDB01-70F4-4E06-B468-8F87850B22BE} - {748584B1-BA69-4F6A-81AA-F4BDE6BCE29D} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} {83F0BE02-6B71-4695-B86F-18DEEE34B485} = {CA9AC87F-097E-4F15-8393-4BC07735A5B0} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/AddProductDto.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/AddProductDto.cs deleted file mode 100644 index f569c44e..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/AddProductDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.ComponentModel.DataAnnotations; - -namespace EShopOnAbp.BasketService; - -public class AddProductDto : IHasAnonymousId -{ - public Guid ProductId { get; set; } - - [Range(1, int.MaxValue)] - public int Count { get; set; } = 1; - - public Guid? AnonymousId { get; set; } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketDto.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketDto.cs deleted file mode 100644 index 49861381..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections.Generic; - -namespace EShopOnAbp.BasketService; - -public class BasketDto -{ - public float TotalPrice { get; set; } - public List Items { get; set; } - - public BasketDto() - { - Items = new List(); - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketItemDto.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketItemDto.cs deleted file mode 100644 index 3e2e3ef0..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketItemDto.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace EShopOnAbp.BasketService; - -public class BasketItemDto -{ - public Guid ProductId { get; set; } - public string ProductName { get; set; } - public string ProductCode { get; set; } - public string ImageName { get; set; } - public int Count { get; set; } - public float TotalPrice { get; set; } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketServiceApplicationContractsModule.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketServiceApplicationContractsModule.cs deleted file mode 100644 index f88c26ce..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketServiceApplicationContractsModule.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Volo.Abp.Application; -using Volo.Abp.Authorization; -using Volo.Abp.Modularity; -using Volo.Abp.ObjectExtending; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - typeof(BasketServiceDomainSharedModule), - typeof(AbpDddApplicationContractsModule), - typeof(AbpAuthorizationModule), - typeof(AbpObjectExtendingModule) - )] - public class BasketServiceApplicationContractsModule : AbpModule - { - public override void PreConfigureServices(ServiceConfigurationContext context) - { - BasketServiceDtoExtensions.Configure(); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketServiceDtoExtensions.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketServiceDtoExtensions.cs deleted file mode 100644 index b9b9ec2e..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/BasketServiceDtoExtensions.cs +++ /dev/null @@ -1,27 +0,0 @@ -using Volo.Abp.Threading; - -namespace EShopOnAbp.BasketService -{ - public static class BasketServiceDtoExtensions - { - private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); - - public static void Configure() - { - OneTimeRunner.Run(() => - { - /* You can add extension properties to DTOs - * defined in the depended modules. - * - * Example: - * - * ObjectExtensionManager.Instance - * .AddOrUpdateProperty("Title"); - * - * See the documentation for more: - * https://docs.abp.io/en/abp/latest/Object-Extensions - */ - }); - } - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/EShopOnAbp.BasketService.Application.Contracts.csproj b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/EShopOnAbp.BasketService.Application.Contracts.csproj deleted file mode 100644 index 499b3a75..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/EShopOnAbp.BasketService.Application.Contracts.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.BasketService - - - - - - - - - - - - diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/IBasketAppService.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/IBasketAppService.cs deleted file mode 100644 index 6515ddbf..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/IBasketAppService.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Threading.Tasks; -using Volo.Abp.Application.Services; - -namespace EShopOnAbp.BasketService; - -public interface IBasketAppService : IApplicationService -{ - Task GetAsync(Guid? anonymousUserId); - Task AddProductAsync(AddProductDto input); - Task RemoveProductAsync(RemoveProductDto input); -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/IHasAnonymousId.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/IHasAnonymousId.cs deleted file mode 100644 index 64c27687..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/IHasAnonymousId.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace EShopOnAbp.BasketService -{ - public interface IHasAnonymousId - { - Guid? AnonymousId { get; } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/Permissions/BasketServicePermissionDefinitionProvider.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/Permissions/BasketServicePermissionDefinitionProvider.cs deleted file mode 100644 index ff68691c..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/Permissions/BasketServicePermissionDefinitionProvider.cs +++ /dev/null @@ -1,21 +0,0 @@ -using EShopOnAbp.BasketService.Localization; -using Volo.Abp.Authorization.Permissions; -using Volo.Abp.Localization; - -namespace EShopOnAbp.BasketService.Permissions -{ - public class BasketServicePermissionDefinitionProvider : PermissionDefinitionProvider - { - public override void Define(IPermissionDefinitionContext context) - { - var myGroup = context.AddGroup(BasketServicePermissions.GroupName); - //Define your own permissions here. Example: - //myGroup.AddPermission(BasketServicePermissions.MyPermission1, L("Permission:MyPermission1")); - } - - private static LocalizableString L(string name) - { - return LocalizableString.Create(name); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/Permissions/BasketServicePermissions.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/Permissions/BasketServicePermissions.cs deleted file mode 100644 index f6e7aa54..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/Permissions/BasketServicePermissions.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace EShopOnAbp.BasketService.Permissions -{ - public static class BasketServicePermissions - { - public const string GroupName = "BasketService"; - - //Add your own permission names. Example: - //public const string MyPermission1 = GroupName + ".MyPermission1"; - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/RemoveProductDto.cs b/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/RemoveProductDto.cs deleted file mode 100644 index e8cf0a2f..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application.Contracts/RemoveProductDto.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace EShopOnAbp.BasketService; - -public class RemoveProductDto : IHasAnonymousId -{ - public Guid ProductId { get; set; } - - public int? Count { get; set; } - - public Guid? AnonymousId { get; set; } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/BasketAppService.cs b/services/basket/src/EShopOnAbp.BasketService.Application/BasketAppService.cs deleted file mode 100644 index 4858d8c8..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/BasketAppService.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Volo.Abp.Users; -using EShopOnAbp.CatalogService.Products; -using Volo.Abp; - -namespace EShopOnAbp.BasketService; - -public class BasketAppService : BasketServiceAppService, IBasketAppService -{ - private readonly IBasketRepository _basketRepository; - private readonly IBasketProductService _basketProductService; - - public BasketAppService( - IBasketRepository basketRepository, - IBasketProductService basketProductService) - { - _basketRepository = basketRepository; - _basketProductService = basketProductService; - } - - public async Task GetAsync(Guid? anonymousUserId) - { - if (anonymousUserId != null && CurrentUser.IsAuthenticated) - { - var userBasket = await _basketRepository.GetAsync(CurrentUser.GetId()); - var anonymousUserBasket = await _basketRepository.GetAsync(anonymousUserId.Value); - - userBasket.Merge(anonymousUserBasket); - await _basketRepository.UpdateAsync(userBasket); - - anonymousUserBasket.Clear(); - await _basketRepository.UpdateAsync(anonymousUserBasket); - - return await GetBasketDtoAsync(userBasket); - } - - if (anonymousUserId != null && !CurrentUser.IsAuthenticated) - { - return await GetBasketDtoAsync(await _basketRepository.GetAsync(anonymousUserId.Value)); - } - - return await GetBasketDtoAsync(await _basketRepository.GetAsync(CurrentUser.GetId())); - } - - public async Task AddProductAsync(AddProductDto input) - { - Guid userId = CurrentUser.IsAuthenticated ? CurrentUser.GetId() : input.AnonymousId.GetValueOrDefault(); - - var basket = await _basketRepository.GetAsync(userId); - var product = await _basketProductService.GetAsync(input.ProductId); - - if (basket.GetProductCount(product.Id) >= product.StockCount) - { - throw new UserFriendlyException("There is not enough product in stock, sorry :("); - } - - basket.AddProduct(product.Id); - - await _basketRepository.UpdateAsync(basket); - - return await GetBasketDtoAsync(basket); - } - - public async Task RemoveProductAsync(RemoveProductDto input) - { - Guid userId = CurrentUser.IsAuthenticated ? CurrentUser.GetId() : input.AnonymousId.GetValueOrDefault(); - - var basket = await _basketRepository.GetAsync(userId); - var product = await _basketProductService.GetAsync(input.ProductId); - - basket.RemoveProduct(product.Id, input.Count); - - await _basketRepository.UpdateAsync(basket); - - return await GetBasketDtoAsync(basket); - } - - private async Task GetBasketDtoAsync(Basket basket) - { - var products = new Dictionary(); - var basketDto = new BasketDto(); - var basketChanged = false; - - foreach (var basketItem in basket.Items) - { - var productDto = products.GetOrDefault(basketItem.ProductId); - if (productDto == null) - { - productDto = await _basketProductService.GetAsync(basketItem.ProductId); - products[productDto.Id] = productDto; - } - - //Removing the products if not available in the stock - if (basketItem.Count > productDto.StockCount) - { - basket.RemoveProduct(basketItem.ProductId, basketItem.Count - productDto.StockCount); - basketChanged = true; - } - - basketDto.Items.Add(new BasketItemDto - { - ProductId = basketItem.ProductId, - Count = basketItem.Count, - ProductCode = productDto.Code, - ImageName = productDto.ImageName, - ProductName = productDto.Name, - TotalPrice = productDto.Price * basketItem.Count - }); - } - - basketDto.TotalPrice = basketDto.Items.Sum(x => x.TotalPrice); - - if (basketChanged) - { - await _basketRepository.UpdateAsync(basket); - } - - return basketDto; - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/BasketProductEventHandler.cs b/services/basket/src/EShopOnAbp.BasketService.Application/BasketProductEventHandler.cs deleted file mode 100644 index 334b47af..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/BasketProductEventHandler.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Threading.Tasks; -using EShopOnAbp.CatalogService.Products; -using Volo.Abp.Caching; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Domain.Entities.Events.Distributed; -using Volo.Abp.EventBus.Distributed; -using Volo.Abp.ObjectMapping; - -namespace EShopOnAbp.BasketService; - -public class BasketProductEventHandler : IDistributedEventHandler>, ITransientDependency -{ - private readonly IDistributedCache _cache; - private readonly IObjectMapper _objectMapper; - private readonly IDistributedEventBus _distributedEventBus; - - public BasketProductEventHandler( - IDistributedCache cache, - IObjectMapper objectMapper, - IDistributedEventBus distributedEventBus) - { - _cache = cache; - _objectMapper = objectMapper; - _distributedEventBus = distributedEventBus; - } - - public async Task HandleEventAsync(EntityUpdatedEto eventData) - { - var cachedProductDto = await _cache.GetAsync(eventData.Entity.Id); - if (cachedProductDto == null) - { - return; - } - - _objectMapper.Map(eventData.Entity, cachedProductDto); - - await _cache.SetAsync(eventData.Entity.Id, cachedProductDto); - - await _distributedEventBus.PublishAsync( - new BasketProductUpdatedEto - { - ProductId = eventData.Entity.Id, - ProductName = eventData.Entity.Name - }); - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/BasketProductService.cs b/services/basket/src/EShopOnAbp.BasketService.Application/BasketProductService.cs deleted file mode 100644 index d764b479..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/BasketProductService.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using System.Threading.Tasks; -using EShopOnAbp.CatalogService.Grpc; -using EShopOnAbp.CatalogService.Products; -using Microsoft.Extensions.Logging; -using Volo.Abp; -using Volo.Abp.ObjectMapping; -using Volo.Abp.Caching; -using Volo.Abp.DependencyInjection; - -namespace EShopOnAbp.BasketService; - -public class BasketProductService : IBasketProductService, ITransientDependency -{ - private readonly IDistributedCache _cache; - private readonly ILogger _logger; - private readonly IObjectMapper _mapper; - private readonly ProductPublic.ProductPublicClient _productPublicGrpcClient; - - public BasketProductService( - IDistributedCache cache, - ILogger logger, - IObjectMapper mapper, - ProductPublic.ProductPublicClient productPublicGrpcClient) - { - _cache = cache; - _logger = logger; - _mapper = mapper; - _productPublicGrpcClient = productPublicGrpcClient; - } - - public async Task GetAsync(Guid productId) - { - return await _cache.GetOrAddAsync( - productId, - () => GetProductAsync(productId) - ); - } - - private async Task GetProductAsync(Guid productId) - { - var request = new ProductRequest { Id = productId.ToString() }; - _logger.LogInformation("=== GRPC request {@request}", request); - var response = await _productPublicGrpcClient.GetByIdAsync(request); - _logger.LogInformation("=== GRPC response {@response}", response); - return _mapper.Map(response) ?? - throw new UserFriendlyException(BasketServiceDomainErrorCodes.ProductNotFound); - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceAppService.cs b/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceAppService.cs deleted file mode 100644 index c5141c68..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceAppService.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using EShopOnAbp.BasketService.Localization; -using Volo.Abp.Application.Services; - -namespace EShopOnAbp.BasketService -{ - /* Inherit your application services from this class. - */ - public abstract class BasketServiceAppService : ApplicationService - { - protected BasketServiceAppService() - { - LocalizationResource = typeof(BasketServiceResource); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceApplicationAutoMapperProfile.cs b/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceApplicationAutoMapperProfile.cs deleted file mode 100644 index 781a2073..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceApplicationAutoMapperProfile.cs +++ /dev/null @@ -1,15 +0,0 @@ -using AutoMapper; -using EShopOnAbp.CatalogService.Grpc; -using EShopOnAbp.CatalogService.Products; - -namespace EShopOnAbp.BasketService -{ - public class BasketServiceApplicationAutoMapperProfile : Profile - { - public BasketServiceApplicationAutoMapperProfile() - { - CreateMap(); - CreateMap(); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceApplicationModule.cs b/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceApplicationModule.cs deleted file mode 100644 index 74a9e542..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/BasketServiceApplicationModule.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using EShopOnAbp.CatalogService; -using EShopOnAbp.CatalogService.Grpc; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Options; -using Volo.Abp.Application; -using Volo.Abp.AutoMapper; -using Volo.Abp.Http.Client; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - typeof(BasketServiceDomainModule), - typeof(BasketServiceApplicationContractsModule), - typeof(AbpDddApplicationModule), - typeof(AbpAutoMapperModule), - typeof(CatalogServiceHttpApiClientModule) - )] - public class BasketServiceApplicationModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - var configuration = context.Services.GetConfiguration(); - Configure(options => - { - options.AddMaps(); - }); - - context.Services.AddGrpcClient((services, options) => - { - var remoteServiceOptions = services.GetRequiredService>().CurrentValue; - var catalogServiceConfiguration = remoteServiceOptions.RemoteServices.GetConfigurationOrDefault("Catalog"); - var catalogGrpcUrl = catalogServiceConfiguration.GetOrDefault("GrpcUrl"); - - options.Address = new Uri(catalogGrpcUrl); - }); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/EShopOnAbp.BasketService.Application.csproj b/services/basket/src/EShopOnAbp.BasketService.Application/EShopOnAbp.BasketService.Application.csproj deleted file mode 100644 index bbcbc805..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/EShopOnAbp.BasketService.Application.csproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.BasketService - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/IBasketProductService.cs b/services/basket/src/EShopOnAbp.BasketService.Application/IBasketProductService.cs deleted file mode 100644 index 1288112c..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/IBasketProductService.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Threading.Tasks; -using EShopOnAbp.CatalogService.Products; -using JetBrains.Annotations; - -namespace EShopOnAbp.BasketService; - -public interface IBasketProductService -{ - [ItemNotNull] - Task GetAsync(Guid productId); -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Application/Properties/AssemblyInfo.cs b/services/basket/src/EShopOnAbp.BasketService.Application/Properties/AssemblyInfo.cs deleted file mode 100644 index 788f548f..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Application/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,2 +0,0 @@ -using System.Runtime.CompilerServices; -[assembly:InternalsVisibleToAttribute("EShopOnAbp.BasketService.Application.Tests")] diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketProductUpdatedEto.cs b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketProductUpdatedEto.cs deleted file mode 100644 index 14f4e141..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketProductUpdatedEto.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace EShopOnAbp.BasketService; - -public class BasketProductUpdatedEto -{ - public Guid ProductId { get; set; } - public string ProductName { get; set; } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceDomainErrorCodes.cs b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceDomainErrorCodes.cs deleted file mode 100644 index 7273e4dd..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceDomainErrorCodes.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace EShopOnAbp.BasketService -{ - public static class BasketServiceDomainErrorCodes - { - /* You can add your business exception error codes here, as constants */ - public const string ProductNotFound = "ProductNotFound"; - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceDomainSharedModule.cs b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceDomainSharedModule.cs deleted file mode 100644 index 73650d79..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceDomainSharedModule.cs +++ /dev/null @@ -1,47 +0,0 @@ -using EShopOnAbp.BasketService.Localization; -using EShopOnAbp.OrderingService; -using Volo.Abp.Localization; -using Volo.Abp.Localization.ExceptionHandling; -using Volo.Abp.Modularity; -using Volo.Abp.Validation; -using Volo.Abp.Validation.Localization; -using Volo.Abp.VirtualFileSystem; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - typeof(AbpValidationModule), - typeof(OrderingServiceDomainSharedModule) - )] - public class BasketServiceDomainSharedModule : AbpModule - { - public override void PreConfigureServices(ServiceConfigurationContext context) - { - BasketServiceGlobalFeatureConfigurator.Configure(); - BasketServiceModuleExtensionConfigurator.Configure(); - } - - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.FileSets.AddEmbedded(); - }); - - Configure(options => - { - options.Resources - .Add("en") - .AddBaseTypes(typeof(AbpValidationResource)) - .AddVirtualJson("/Localization/BasketService"); - - options.DefaultResourceType = typeof(BasketServiceResource); - }); - - Configure(options => - { - options.MapCodeNamespace("BasketService", typeof(BasketServiceResource)); - }); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceGlobalFeatureConfigurator.cs b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceGlobalFeatureConfigurator.cs deleted file mode 100644 index 9c03b8f7..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceGlobalFeatureConfigurator.cs +++ /dev/null @@ -1,23 +0,0 @@ -using Volo.Abp.Threading; - -namespace EShopOnAbp.BasketService -{ - public static class BasketServiceGlobalFeatureConfigurator - { - private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); - - public static void Configure() - { - OneTimeRunner.Run(() => - { - /* You can configure (enable/disable) global features of the used modules here. - * - * YOU CAN SAFELY DELETE THIS CLASS AND REMOVE ITS USAGES IF YOU DON'T NEED TO IT! - * - * Please refer to the documentation to lear more about the Global Features System: - * https://docs.abp.io/en/abp/latest/Global-Features - */ - }); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceModuleExtensionConfigurator.cs b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceModuleExtensionConfigurator.cs deleted file mode 100644 index 04886c60..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/BasketServiceModuleExtensionConfigurator.cs +++ /dev/null @@ -1,69 +0,0 @@ -using Volo.Abp.Threading; - -namespace EShopOnAbp.BasketService -{ - public static class BasketServiceModuleExtensionConfigurator - { - private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner(); - - public static void Configure() - { - OneTimeRunner.Run(() => - { - ConfigureExistingProperties(); - ConfigureExtraProperties(); - }); - } - - private static void ConfigureExistingProperties() - { - /* You can change max lengths for properties of the - * entities defined in the modules used by your application. - * - * Example: Change user and role name max lengths - - IdentityUserConsts.MaxNameLength = 99; - IdentityRoleConsts.MaxNameLength = 99; - - * Notice: It is not suggested to change property lengths - * unless you really need it. Go with the standard values wherever possible. - * - * If you are using EF Core, you will need to run the add-migration command after your changes. - */ - } - - private static void ConfigureExtraProperties() - { - /* You can configure extra properties for the - * entities defined in the modules used by your application. - * - * This class can be used to define these extra properties - * with a high level, easy to use API. - * - * Example: Add a new property to the user entity of the identity module - - ObjectExtensionManager.Instance.Modules() - .ConfigureIdentity(identity => - { - identity.ConfigureUser(user => - { - user.AddOrUpdateProperty( //property type: string - "SocialSecurityNumber", //property name - property => - { - //validation rules - property.Attributes.Add(new RequiredAttribute()); - property.Attributes.Add(new StringLengthAttribute(64) {MinimumLength = 4}); - - //...other configurations for this property - } - ); - }); - }); - - * See the documentation for more: - * https://docs.abp.io/en/abp/latest/Module-Entity-Extensions - */ - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/EShopOnAbp.BasketService.Domain.Shared.csproj b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/EShopOnAbp.BasketService.Domain.Shared.csproj deleted file mode 100644 index 18b9243f..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/EShopOnAbp.BasketService.Domain.Shared.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.BasketService - true - - - - - - - - - - - - - - - - - - - - diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ar.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ar.json deleted file mode 100644 index 3e5227a9..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ar.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "ar", - "texts": { - "Menu:Home": "الرئيسية", - "Welcome": "مرحبا", - "LongWelcomeMessage": "مرحبا بكم في التطبيق. هذا مشروع بدء تشغيل يعتمد على إطار عمل ABP. لمزيد من المعلومات ، يرجى زيارة abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/cs.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/cs.json deleted file mode 100644 index 5a0bbf61..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/cs.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "cs", - "texts": { - "Menu:Home": "Úvod", - "Welcome": "Vítejte", - "LongWelcomeMessage": "Vítejte v aplikaci. Toto je startovací projekt založený na ABP frameworku. Pro více informací, navštivte abp.io." - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/de-DE.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/de-DE.json deleted file mode 100644 index aca4528c..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/de-DE.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "de-DE", - "texts": { - "Menu:Home": "Home", - "Welcome": "Willkommen", - "LongWelcomeMessage": "Willkommen bei der Anwendung. Dies ist ein Startup-Projekt, das auf dem ABP-Framework basiert. Weitere Informationen finden Sie unter abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/en-GB.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/en-GB.json deleted file mode 100644 index d2ca0793..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/en-GB.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "en-GB", - "texts": { - "Menu:Home": "Home", - "Welcome": "Welcome", - "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/en.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/en.json deleted file mode 100644 index f44c9b4a..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/en.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "culture": "en", - "texts": { - "Menu:Home": "Home", - "Welcome": "Welcome", - "LongWelcomeMessage": "Welcome to the application. This is a startup project based on the ABP framework. For more information, visit abp.io.", - "Toolbar:Cart": "My Cart", - "Toolbar:BasketNotLoaded": "Couldn't Load!", - "Toolbar:CartEmpty": "Cart is Empty!", - "ProductNotFound": "Could not find the product!" - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/es.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/es.json deleted file mode 100644 index 31b4b59e..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/es.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "es", - "texts": { - "Menu:Home": "Inicio", - "Welcome": "Bienvenido", - "LongWelcomeMessage": "Bienvenido a la aplicación, este es un proyecto base basado en el framework ABP. Para más información, visita abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/fi.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/fi.json deleted file mode 100644 index a318859f..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/fi.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "fi", - "texts": { - "Menu:Home": "Koti", - "Welcome": "Tervetuloa", - "LongWelcomeMessage": "Tervetuloa sovellukseen. Tämä on ABP-kehykseen perustuva käynnistysprojekti. Lisätietoja on osoitteessa abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/fr.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/fr.json deleted file mode 100644 index e76eac0c..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/fr.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "fr", - "texts": { - "Menu:Home": "Accueil", - "Welcome": "Bienvenue", - "LongWelcomeMessage": "Bienvenue dans l'application. Il s'agit d'un projet de démarrage basé sur le framework ABP. Pour plus d'informations, visitez abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/hi.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/hi.json deleted file mode 100644 index a1676bfd..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/hi.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "hi", - "texts": { - "Menu:Home": "घर", - "Welcome": "स्वागत हे", - "LongWelcomeMessage": "आवेदन करने के लिए आपका स्वागत है। यह एबीपी ढांचे पर आधारित एक स्टार्टअप परियोजना है। अधिक जानकारी के लिए, abp.io पर जाएं।" - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/hu.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/hu.json deleted file mode 100644 index c7b6a33a..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/hu.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "hu", - "texts": { - "Menu:Home": "Kezdőlap", - "Welcome": "Üdvözlöm", - "LongWelcomeMessage": "Üdvözöljük az alkalmazásban. Ez egy ABP keretrendszeren alapuló startup projekt. További információkért látogasson el az abp.io oldalra." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/it.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/it.json deleted file mode 100644 index 82ce42b0..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/it.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "it", - "texts": { - "Menu:Home": "Home", - "Welcome": "Benvenuto", - "LongWelcomeMessage": "Benvenuto nell'applicazione. Questo è un progetto di avvio basato sul framework ABP. Per ulteriori informazioni, visita abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/nl.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/nl.json deleted file mode 100644 index 9ba8da47..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/nl.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "nl", - "texts": { - "Menu:Home": "Home", - "Welcome": "Welkom", - "LongWelcomeMessage": "Welkom bij de applicatie. Dit is een startup-project gebaseerd op het ABP-framework. Bezoek abp.io voor meer informatie." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/pl-PL.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/pl-PL.json deleted file mode 100644 index 33412f30..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/pl-PL.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "pl-PL", - "texts": { - "Menu:Home": "Home", - "Welcome": "Witaj", - "LongWelcomeMessage": "Witaj w aplikacji. To jest inicjalny projekt bazujący na ABP framework. Po więcej informacji odwiedź stronę abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/pt-BR.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/pt-BR.json deleted file mode 100644 index 8c818a07..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/pt-BR.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "pt-BR", - "texts": { - "Menu:Home": "Principal", - "Welcome": "Seja bem-vindo!", - "LongWelcomeMessage": "Bem-vindo a esta aplicação. Este é um projeto inicial baseado no ABP framework. Para mais informações, visite abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ro-RO.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ro-RO.json deleted file mode 100644 index 1fe56019..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ro-RO.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "ro-RO", - "texts": { - "Menu:Home": "Acasă", - "Welcome": "Bun venit", - "LongWelcomeMessage": "Bun venit la aplicaţie. Acesta este un proiect de pornire bazat pe framework-ul ABP. Pentru mai multe informaţii, vizitaţi, visit abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ru.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ru.json deleted file mode 100644 index 8464e443..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/ru.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "ru", - "texts": { - "Menu:Home": "Главная", - "Welcome": "Добро пожаловать", - "LongWelcomeMessage": "Добро пожаловать в приложение. Этот запущенный проект основан на фреймворке ABP. Для получения дополнительной информации посетите сайт abp.io." - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/sk.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/sk.json deleted file mode 100644 index 4f35aaf1..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/sk.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "sk", - "texts": { - "Menu:Home": "Domov", - "Welcome": "Vitajte", - "LongWelcomeMessage": "Vitajte v aplikácii. Toto je štartovací projekt založený na ABP frameworku. Viac informácií nájdete na stránke abp.io." - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/sl.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/sl.json deleted file mode 100644 index a066ef26..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/sl.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "sl", - "texts": { - "Menu:Home": "Domov", - "Welcome": "Dobrodošli", - "LongWelcomeMessage": "Dobrodošli v aplikaciji. To je začetni projekt na osnovi okolja ABP. Za več informacij obiščite abp.io." - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/tr.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/tr.json deleted file mode 100644 index fc0fef09..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/tr.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "culture": "tr", - "texts": { - "Menu:Home": "Ana sayfa", - "Welcome": "Hoşgeldiniz", - "LongWelcomeMessage": "Uygulamaya hoşgeldiniz. Bu, ABP framework'ü üzerine bina edilmiş bir başlangıç projesidir. Daha fazla bilgi için abp.io adresini ziyaret edebilirsiniz.", - "Toolbar:Cart": "Sepetim", - "Toolbar:BasketNotLoaded": "Sepet Hatası!", - "Toolbar:CartEmpty": "Sepetiniz Boş", - "ProductNotFound": "Bu ürün bulunamadı!" - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/vi.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/vi.json deleted file mode 100644 index c115a357..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/vi.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "vi", - "texts": { - "Menu:Home": "Trang chủ", - "Welcome": "Chào mừng bạn", - "LongWelcomeMessage": "Chào mừng bạn đến ứng dụng. Đây là một dự án khởi nghiệp dựa trên khung ABP. Để biết thêm thông tin, hãy truy cập abp.io." - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/zh-Hans.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/zh-Hans.json deleted file mode 100644 index 3c0ebef5..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/zh-Hans.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "culture": "zh-Hans", - "texts": { - "Menu:Home": "首页", - "Welcome": "欢迎", - "LongWelcomeMessage": "欢迎来到该应用程序. 这是一个基于ABP框架的启动项目. 有关更多信息, 请访问 abp.io.", - "Toolbar:Cart": "我的购物车", - "Toolbar:BasketNotLoaded": "无法加载!" - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/zh-Hant.json b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/zh-Hant.json deleted file mode 100644 index 31e0ab5a..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketService/zh-Hant.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "culture": "zh-Hant", - "texts": { - "Menu:Home": "首頁", - "Welcome": "歡迎", - "LongWelcomeMessage": "歡迎來到此應用程式. 這是一個基於ABP框架的起始專案. 有關更多訊息, 請瀏覽 abp.io." - } - } \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketServiceResource.cs b/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketServiceResource.cs deleted file mode 100644 index 07aca7a0..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain.Shared/Localization/BasketServiceResource.cs +++ /dev/null @@ -1,10 +0,0 @@ -using Volo.Abp.Localization; - -namespace EShopOnAbp.BasketService.Localization -{ - [LocalizationResourceName("BasketService")] - public class BasketServiceResource - { - - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/Basket.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/Basket.cs deleted file mode 100644 index bafb2a90..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/Basket.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using Volo.Abp.Domain.Entities; - -namespace EShopOnAbp.BasketService; - -public class Basket : AggregateRoot -{ - public List Items { get; set; } - - private Basket() - { - } - - public Basket(Guid id) - : base(id) - { - Items = new List(); - } - - public void AddProduct(Guid productId, int count = 1) - { - if (count < 1) - { - throw new ArgumentOutOfRangeException(nameof(count), "Product count should be 1 or more!"); - } - - var item = Items.FirstOrDefault(x => x.ProductId == productId); - if (item == null) - { - Items.Add(new BasketItem(productId, count)); - } - else - { - item.Count += count; - } - } - - public void RemoveProduct(Guid productId, int? count = null) - { - if (count is < 1) - { - throw new ArgumentOutOfRangeException(nameof(count), "Product count should be null, 1 or more!"); - } - - var item = Items.FirstOrDefault(x => x.ProductId == productId); - if (item == null) - { - return; - } - - if (count == null || item.Count <= count) - { - Items.Remove(item); - return; - } - - item.Count -= count.Value; - } - - public int GetProductCount(Guid productId) - { - var item = Items.FirstOrDefault(x => x.ProductId == productId); - return item?.Count ?? 0; - } - - public void Clear() - { - Items.Clear(); - } - - public void Merge(Basket basket) - { - foreach (var item in basket.Items) - { - AddProduct(item.ProductId, item.Count); - } - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/BasketItem.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/BasketItem.cs deleted file mode 100644 index 4480a08f..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/BasketItem.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; - -namespace EShopOnAbp.BasketService; - -public class BasketItem -{ - public Guid ProductId { get; private set; } - public int Count { get; internal set; } - - private BasketItem() - { - - } - - public BasketItem(Guid productId, int count = 1) - { - ProductId = productId; - Count = count; - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/BasketRepository.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/BasketRepository.cs deleted file mode 100644 index 0b851d72..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/BasketRepository.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Threading.Tasks; -using Volo.Abp.Caching; - -namespace EShopOnAbp.BasketService; - -public class BasketRepository : IBasketRepository -{ - private readonly IDistributedCache _cache; - - public BasketRepository(IDistributedCache cache) - { - _cache = cache; - } - - public async Task GetAsync(Guid id) - { - return await _cache.GetOrAddAsync(id, () => Task.FromResult(new Basket(id))); - } - - public async Task UpdateAsync(Basket basket) - { - await _cache.SetAsync(basket.Id, basket); - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/BasketServiceDomainModule.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/BasketServiceDomainModule.cs deleted file mode 100644 index 39230157..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/BasketServiceDomainModule.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using Microsoft.Extensions.Caching.Distributed; -using Volo.Abp.Caching; -using Volo.Abp.Domain; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - typeof(BasketServiceDomainSharedModule), - typeof(AbpDddDomainModule), - typeof(AbpCachingModule) - )] - public class BasketServiceDomainModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.CacheConfigurators.Add(cacheName => - { - if (cacheName == CacheNameAttribute.GetCacheName(typeof(Basket))) - { - return new DistributedCacheEntryOptions - { - SlidingExpiration = TimeSpan.FromDays(7) - }; - } - - return null; - }); - }); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/EShopOnAbp.BasketService.Domain.csproj b/services/basket/src/EShopOnAbp.BasketService.Domain/EShopOnAbp.BasketService.Domain.csproj deleted file mode 100644 index 388f2288..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/EShopOnAbp.BasketService.Domain.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.BasketService - - - - - - - - - - - - diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/IBasketRepository.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/IBasketRepository.cs deleted file mode 100644 index 173ed00f..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/IBasketRepository.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Threading.Tasks; -using Volo.Abp.Domain.Repositories; - -namespace EShopOnAbp.BasketService; - -public interface IBasketRepository : IRepository -{ - Task GetAsync(Guid id); - - Task UpdateAsync(Basket basket); -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/Orders/OrderPlacedEventHandler.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/Orders/OrderPlacedEventHandler.cs deleted file mode 100644 index d5b32341..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/Orders/OrderPlacedEventHandler.cs +++ /dev/null @@ -1,26 +0,0 @@ -using EShopOnAbp.OrderingService.Orders; -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; -using Volo.Abp.EventBus.Distributed; -using Volo.Abp.Uow; - -namespace EShopOnAbp.BasketService.Orders -{ - public class OrderPlacedEventHandler : IDistributedEventHandler, ITransientDependency - { - private readonly IBasketRepository _basketRepository; - - public OrderPlacedEventHandler(IBasketRepository basketRepository) - { - _basketRepository = basketRepository; - } - - [UnitOfWork] - public async Task HandleEventAsync(OrderPlacedEto eventData) - { - var basket = await _basketRepository.GetAsync(eventData.Buyer.BuyerId.GetValueOrDefault()); - basket.Clear(); - await _basketRepository.UpdateAsync(basket); - } - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/Properties/AssemblyInfo.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/Properties/AssemblyInfo.cs deleted file mode 100644 index d83f67da..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,3 +0,0 @@ -using System.Runtime.CompilerServices; -[assembly:InternalsVisibleToAttribute("EShopOnAbp.BasketService.Domain.Tests")] -[assembly:InternalsVisibleToAttribute("EShopOnAbp.BasketService.TestBase")] diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/Settings/BasketServiceSettingDefinitionProvider.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/Settings/BasketServiceSettingDefinitionProvider.cs deleted file mode 100644 index 7af0661a..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/Settings/BasketServiceSettingDefinitionProvider.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Volo.Abp.Settings; - -namespace EShopOnAbp.BasketService.Settings -{ - public class BasketServiceSettingDefinitionProvider : SettingDefinitionProvider - { - public override void Define(ISettingDefinitionContext context) - { - //Define your own settings here. Example: - //context.Add(new SettingDefinition(BasketServiceSettings.MySetting1)); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.Domain/Settings/BasketServiceSettings.cs b/services/basket/src/EShopOnAbp.BasketService.Domain/Settings/BasketServiceSettings.cs deleted file mode 100644 index 6705e811..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.Domain/Settings/BasketServiceSettings.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace EShopOnAbp.BasketService.Settings -{ - public static class BasketServiceSettings - { - private const string Prefix = "BasketService"; - - //Add your own setting names here. Example: - //public const string MySetting1 = Prefix + ".MySetting1"; - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/BasketServiceHttpApiClientModule.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/BasketServiceHttpApiClientModule.cs deleted file mode 100644 index 093c7352..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/BasketServiceHttpApiClientModule.cs +++ /dev/null @@ -1,29 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Http.Client; -using Volo.Abp.Modularity; -using Volo.Abp.VirtualFileSystem; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - typeof(BasketServiceApplicationContractsModule), - typeof(AbpHttpClientModule) - )] - public class BasketServiceHttpApiClientModule : AbpModule - { - public const string RemoteServiceName = "Basket"; - - public override void ConfigureServices(ServiceConfigurationContext context) - { - context.Services.AddStaticHttpClientProxies( - typeof(BasketServiceApplicationContractsModule).Assembly, - RemoteServiceName - ); - - Configure(options => - { - options.FileSets.AddEmbedded(); - }); - } - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/BasketClientProxy.Generated.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/BasketClientProxy.Generated.cs deleted file mode 100644 index 5bb60e34..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/BasketClientProxy.Generated.cs +++ /dev/null @@ -1,41 +0,0 @@ -// This file is automatically generated by ABP framework to use MVC Controllers from CSharp -using System; -using System.Threading.Tasks; -using Volo.Abp.Application.Dtos; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Modeling; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Http.Client.ClientProxying; -using EShopOnAbp.BasketService; - -// ReSharper disable once CheckNamespace -namespace EShopOnAbp.BasketService.ClientProxies; - -[Dependency(ReplaceServices = true)] -[ExposeServices(typeof(IBasketAppService), typeof(BasketClientProxy))] -public partial class BasketClientProxy : ClientProxyBase, IBasketAppService -{ - public virtual async Task GetAsync(Guid? anonymousUserId) - { - return await RequestAsync(nameof(GetAsync), new ClientProxyRequestTypeValue - { - { typeof(Guid?), anonymousUserId } - }); - } - - public virtual async Task AddProductAsync(AddProductDto input) - { - return await RequestAsync(nameof(AddProductAsync), new ClientProxyRequestTypeValue - { - { typeof(AddProductDto), input } - }); - } - - public virtual async Task RemoveProductAsync(RemoveProductDto input) - { - return await RequestAsync(nameof(RemoveProductAsync), new ClientProxyRequestTypeValue - { - { typeof(RemoveProductDto), input } - }); - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/BasketClientProxy.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/BasketClientProxy.cs deleted file mode 100644 index 222238f4..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/BasketClientProxy.cs +++ /dev/null @@ -1,7 +0,0 @@ -// This file is part of BasketClientProxy, you can customize it here -// ReSharper disable once CheckNamespace -namespace EShopOnAbp.BasketService.ClientProxies; - -public partial class BasketClientProxy -{ -} diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/basket-generate-proxy.json b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/basket-generate-proxy.json deleted file mode 100644 index 901caad0..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/ClientProxies/basket-generate-proxy.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "modules": { - "basket": { - "rootPath": "basket", - "remoteServiceName": "Basket", - "controllers": { - "EShopOnAbp.BasketService.BasketAppService": { - "controllerName": "Basket", - "controllerGroupName": "Basket", - "type": "EShopOnAbp.BasketService.BasketAppService", - "interfaces": [ - { - "type": "Volo.Abp.Validation.IValidationEnabled" - }, - { - "type": "Volo.Abp.Auditing.IAuditingEnabled" - }, - { - "type": "Volo.Abp.GlobalFeatures.IGlobalFeatureCheckingEnabled" - }, - { - "type": "EShopOnAbp.BasketService.IBasketAppService" - } - ], - "actions": { - "GetAsyncByAnonymousUserId": { - "uniqueName": "GetAsyncByAnonymousUserId", - "name": "GetAsync", - "httpMethod": "GET", - "url": "api/basket/basket", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "anonymousUserId", - "typeAsString": "System.Nullable`1[[System.Guid, System.Private.CoreLib, Version=6.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]], System.Private.CoreLib", - "type": "System.Guid?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "anonymousUserId", - "name": "anonymousUserId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "" - } - ], - "returnValue": { - "type": "EShopOnAbp.BasketService.BasketDto", - "typeSimple": "EShopOnAbp.BasketService.BasketDto" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.BasketService.IBasketAppService" - }, - "AddProductAsyncByInput": { - "uniqueName": "AddProductAsyncByInput", - "name": "AddProductAsync", - "httpMethod": "POST", - "url": "api/basket/basket/product", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "EShopOnAbp.BasketService.AddProductDto, EShopOnAbp.BasketService.Application.Contracts", - "type": "EShopOnAbp.BasketService.AddProductDto", - "typeSimple": "EShopOnAbp.BasketService.AddProductDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "input", - "jsonName": null, - "type": "EShopOnAbp.BasketService.AddProductDto", - "typeSimple": "EShopOnAbp.BasketService.AddProductDto", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "Body", - "descriptorName": "" - } - ], - "returnValue": { - "type": "EShopOnAbp.BasketService.BasketDto", - "typeSimple": "EShopOnAbp.BasketService.BasketDto" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.BasketService.IBasketAppService" - }, - "RemoveProductAsyncByInput": { - "uniqueName": "RemoveProductAsyncByInput", - "name": "RemoveProductAsync", - "httpMethod": "DELETE", - "url": "api/basket/basket/product", - "supportedVersions": [], - "parametersOnMethod": [ - { - "name": "input", - "typeAsString": "EShopOnAbp.BasketService.RemoveProductDto, EShopOnAbp.BasketService.Application.Contracts", - "type": "EShopOnAbp.BasketService.RemoveProductDto", - "typeSimple": "EShopOnAbp.BasketService.RemoveProductDto", - "isOptional": false, - "defaultValue": null - } - ], - "parameters": [ - { - "nameOnMethod": "input", - "name": "ProductId", - "jsonName": null, - "type": "System.Guid", - "typeSimple": "string", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "Count", - "jsonName": null, - "type": "System.Int32?", - "typeSimple": "number?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - }, - { - "nameOnMethod": "input", - "name": "AnonymousId", - "jsonName": null, - "type": "System.Guid?", - "typeSimple": "string?", - "isOptional": false, - "defaultValue": null, - "constraintTypes": null, - "bindingSourceId": "ModelBinding", - "descriptorName": "input" - } - ], - "returnValue": { - "type": "EShopOnAbp.BasketService.BasketDto", - "typeSimple": "EShopOnAbp.BasketService.BasketDto" - }, - "allowAnonymous": null, - "implementFrom": "EShopOnAbp.BasketService.IBasketAppService" - } - } - } - } - } - }, - "types": {} -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/EShopOnAbp.BasketService.HttpApi.Client.csproj b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/EShopOnAbp.BasketService.HttpApi.Client.csproj deleted file mode 100644 index a2163e8a..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Client/EShopOnAbp.BasketService.HttpApi.Client.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - netstandard2.0 - EShopOnAbp.BasketService - - - - - - - - - - - - - - - - diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/BasketServiceHttpApiHostModule.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/BasketServiceHttpApiHostModule.cs deleted file mode 100644 index a1d990d5..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/BasketServiceHttpApiHostModule.cs +++ /dev/null @@ -1,108 +0,0 @@ -using EShopOnAbp.Shared.Hosting.AspNetCore; -using EShopOnAbp.Shared.Hosting.Microservices; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Cors; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; -using System; -using System.Collections.Generic; -using System.Linq; -using Microsoft.Extensions.Configuration; -using Volo.Abp; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.AntiForgery; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.BasketService; - -[DependsOn( - typeof(BasketServiceHttpApiModule), - typeof(BasketServiceApplicationModule), - typeof(EShopOnAbpSharedHostingMicroservicesModule) -)] -public class BasketServiceHttpApiHostModule : AbpModule -{ - public override void ConfigureServices(ServiceConfigurationContext context) - { - Microsoft.IdentityModel.Logging.IdentityModelEventSource.ShowPII = true; - - var configuration = context.Services.GetConfiguration(); - var hostingEnvironment = context.Services.GetHostingEnvironment(); - - JwtBearerConfigurationHelper.Configure(context, "BasketService"); - - SwaggerWithAuthConfigurationHelper.Configure( - context: context, - authority: configuration["AuthServer:Authority"], - scopes: new - Dictionary /* Requested scopes for authorization code request and descriptions for swagger UI only */ - { - {"BasketService", "Basket Service API"} - }, - apiTitle: "Basket Service API" - ); - - context.Services.AddCors(options => - { - options.AddDefaultPolicy(builder => - { - builder - .WithOrigins( - configuration["App:CorsOrigins"] - .Split(",", StringSplitOptions.RemoveEmptyEntries) - .Select(o => o.Trim().RemovePostFix("/")) - .ToArray() - ) - .WithAbpExposedHeaders() - .SetIsOriginAllowedToAllowWildcardSubdomains() - .AllowAnyHeader() - .AllowAnyMethod() - .AllowCredentials(); - }); - }); - - Configure(options => - { - options.ConventionalControllers.Create( - typeof(BasketServiceApplicationModule).Assembly, opts => - { - opts.RootPath = "basket"; - opts.RemoteServiceName = "Basket"; - }); - }); - - Configure(options => { options.AutoValidate = false; }); - } - - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - var app = context.GetApplicationBuilder(); - var env = context.GetEnvironment(); - - if (env.IsDevelopment()) - { - app.UseDeveloperExceptionPage(); - } - - app.UseCorrelationId(); - app.UseCors(); - app.UseAbpRequestLocalization(); - app.UseStaticFiles(); - app.UseRouting(); - app.UseAuthentication(); - app.UseAbpClaimsMap(); - app.UseAuthorization(); - app.UseSwagger(); - app.UseSwaggerUI(options => - { - var configuration = context.ServiceProvider.GetRequiredService(); - options.SwaggerEndpoint("/swagger/v1/swagger.json", "Basket Service API"); - options.OAuthClientId(configuration["AuthServer:SwaggerClientId"]); - options.OAuthClientSecret(configuration["AuthServer:SwaggerClientSecret"]); - }); - app.UseAbpSerilogEnrichers(); - app.UseAuditing(); - app.UseUnitOfWork(); - app.UseConfiguredEndpoints(); - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Controllers/HomeController.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Controllers/HomeController.cs deleted file mode 100644 index d9d431e8..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Controllers/HomeController.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; - -namespace EShopOnAbp.BasketService.Controllers -{ - public class HomeController : AbpController - { - public ActionResult Index() - { - return Redirect("~/swagger"); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile deleted file mode 100644 index 9279ab5a..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile +++ /dev/null @@ -1,51 +0,0 @@ -FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base -WORKDIR /app -EXPOSE 80 -EXPOSE 443 - -FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build -WORKDIR /src - -# It's important to keep lines from here down to "COPY . ." identical in all Dockerfiles -# to take advantage of Docker's build cache, to speed up local container builds -COPY "EShopOnAbp.sln" "EShopOnAbp.sln" - -# Applications -COPY "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" "apps/auth-server/src/EShopOnAbp.AuthServer/EShopOnAbp.AuthServer.csproj" -COPY "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" "apps/public-web/src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj" - -# Shared -COPY "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" "shared/EShopOnAbp.Shared.Hosting/EShopOnAbp.Shared.Hosting.csproj" -COPY "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" "shared/EShopOnAbp.Shared.Hosting.AspNetCore/EShopOnAbp.Shared.Hosting.AspNetCore.csproj" -COPY "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" "shared/EShopOnAbp.Shared.Hosting.Gateways/EShopOnAbp.Shared.Hosting.Gateways.csproj" -COPY "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" "shared/EShopOnAbp.Shared.Hosting.Microservices/EShopOnAbp.Shared.Hosting.Microservices.csproj" -COPY "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" "shared/EShopOnAbp.Shared.Localization/EShopOnAbp.Shared.Localization.csproj" - -# Microservices -COPY "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" "services/administration/src/EShopOnAbp.AdministrationService.HttpApi.Host/EShopOnAbp.AdministrationService.HttpApi.Host.csproj" -COPY "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" "services/identity/src/EShopOnAbp.IdentityService.HttpApi.Host/EShopOnAbp.IdentityService.HttpApi.Host.csproj" -COPY *"services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" "services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj" -COPY *"services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" "services/ordering/src/EShopOnAbp.OrderingService.HttpApi.Host/EShopOnAbp.OrderingService.HttpApi.Host.csproj" -COPY *"services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" "services/catalog/src/EShopOnAbp.CatalogService.HttpApi.Host/EShopOnAbp.CatalogService.HttpApi.Host.csproj" -COPY *"services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" "services/payment/src/EShopOnAbp.PaymentService.HttpApi.Host/EShopOnAbp.PaymentService.HttpApi.Host.csproj" - -# Gateways -COPY "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" "gateways/web/src/EShopOnAbp.WebGateway/EShopOnAbp.WebGateway.csproj" -COPY "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" "gateways/web-public/src/EShopOnAbp.WebPublicGateway/EShopOnAbp.WebPublicGateway.csproj" - -COPY "NuGet.Config" "NuGet.Config" - -RUN dotnet restore "EShopOnAbp.sln" -COPY . . - -WORKDIR "/src/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host" -RUN dotnet publish -c Release -o /app -# Should be used after .net6 is out of preview for better performance -# RUN dotnet publish --no-restore -c Release -o /app - -FROM build AS publish - -FROM base AS final -WORKDIR /app -COPY --from=publish /app . -ENTRYPOINT ["dotnet", "EShopOnAbp.BasketService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile.local b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile.local deleted file mode 100644 index c9ac1070..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Dockerfile.local +++ /dev/null @@ -1,4 +0,0 @@ - FROM mcr.microsoft.com/dotnet/aspnet:6.0 - COPY bin/Release/net6.0/publish/ app/ - WORKDIR /app - ENTRYPOINT ["dotnet", "EShopOnAbp.BasketService.HttpApi.Host.dll"] \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj deleted file mode 100644 index baba3357..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/EShopOnAbp.BasketService.HttpApi.Host.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.BasketService - true - EShopOnAbp.BasketService-4681b4fd-151f-4221-84a4-929d86723e4c - - - - - - - - - - - - - - - - - - - diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Program.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Program.cs deleted file mode 100644 index 2b661d9c..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Program.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Threading.Tasks; -using EShopOnAbp.Shared.Hosting.AspNetCore; -using Microsoft.AspNetCore.Builder; -using Serilog; - -namespace EShopOnAbp.BasketService; - -public class Program -{ - public static async Task Main(string[] args) - { - var assemblyName = typeof(Program).Assembly.GetName().Name; - - SerilogConfigurationHelper.Configure(assemblyName); - - try - { - Log.Information($"Starting {assemblyName}."); - var app = await ApplicationBuilderHelper - .BuildApplicationAsync(args); - await app.InitializeApplicationAsync(); - await app.RunAsync(); - - return 0; - } - catch (Exception ex) - { - Log.Fatal(ex, $"{assemblyName} terminated unexpectedly!"); - return 1; - } - finally - { - Log.CloseAndFlush(); - } - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Properties/launchSettings.json b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Properties/launchSettings.json deleted file mode 100644 index 39e6c5ac..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/Properties/launchSettings.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "https://localhost:44355", - "sslPort": 44355 - } - }, - "profiles": { - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "EShopOnAbp.BasketService.HttpApi.Host": { - "commandName": "Project", - "launchBrowser": true, - "applicationUrl": "https://localhost:44355", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - } - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.Development.json b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.Development.json deleted file mode 100644 index 2c63c085..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.Development.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.json b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.json deleted file mode 100644 index 93adbecc..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "App": { - "SelfUrl": "https://localhost:44355", - "CorsOrigins": "https://localhost:44372,https://localhost:44373,https://localhost:44335" - }, - "AuthServer": { - "Authority": "https://localhost:44330", - "RequireHttpsMetadata": "true", - "SwaggerClientId": "WebGateway_Swagger", - "SwaggerClientSecret": "1q2w3e*" - }, - "RemoteServices": { - "Catalog": { - "BaseUrl": "https://localhost:44354/", - "GrpcUrl": "http://localhost:81" - } - }, - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } - }, - "AllowedHosts": "*", - "ConnectionStrings": { - "AdministrationService": "User ID=postgres;Password=myPassw0rd;Host=localhost;Port=5432;Database=EShopOnAbp_Administration;Pooling=false;" - }, - "StringEncryption": { - "DefaultPassPhrase": "3PfxLgcuymUUbihz" - }, - "Redis": { - "Configuration": "localhost:6379" - }, - "RabbitMQ": { - "Connections": { - "Default": { - "HostName": "localhost" - } - }, - "EventBus": { - "ClientName": "EShopOnAbp_BasketService", - "ExchangeName": "EShopOnAbp" - } - }, - "ElasticSearch": { - "Url": "http://localhost:9200" - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.secrets.json b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.secrets.json deleted file mode 100644 index 7a73a41b..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/appsettings.secrets.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/tempkey.rsa b/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/tempkey.rsa deleted file mode 100644 index f19e3e7d..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi.Host/tempkey.rsa +++ /dev/null @@ -1 +0,0 @@ -{"KeyId":"5eb863b25811a7099f9bc925c0fdf680","Parameters":{"D":"gqn7NAeMkug4twJJHFz/qPseDzQCx7R+6Maj649xrG4vPsMANV9mfR78Er2SuHUS0ZihM2MQEILI5Sf41Uuubv8swCNSE3Dw7GQrBIbTAJ7BZKbQMVgtGkMDtHrtri6d9cOi3EOTSJINICk9r80M49oBMOZihEKascfBSIUYVQvWLEMYfryEiDeFUPbobr10OxF5tZ1unvEKgZe190BdNKWQuFhJelcgsZumjEYNsOz5DHrK73WLhfTy01DmsTKx8i1XVnLtq6W89MqAhMZP9QO9Vj8lR0ANnmdOsY6hJfwUbXiI36t4V9rAZvXR5ESorjb4mnXzT6QPuOfy1fbdSQ==","DP":"ItYIpEqw6aDjDc/swDifUe0Dq6yl4yim3UyQ4B9NBPQR5M6b7D3vbCnvwql4zJK4s+0N4lRViBtkF+20Td1yc2v8S+THCYZCVxCf2e9Q7Ff/sKecJ9/JmdzHkztCfs0xb+4X3CPEQP+JIYtMGmwOLQgE5XgmUYKr0ahZDhYTCwE=","DQ":"v35mgxfyF/nwnWwWlR9cF3mg0v7SyPfKkwdxGaVnGH6G8nPWpPlO+zueflA5QDXEwGtk/1k3PAzI/OLUwJiKBubx/UMhsqt5+/bKTrFDNHxLANCvGNZggMZIzFZBYRucuXRZbiBe5qpCkKkniUct7w6jd/V1mnsESiJZ7btcxU0=","Exponent":"AQAB","InverseQ":"Vbg2a+wtaYvhTV8AzqJsVvaz0kfC4HFbmwEgA8+BAbS3GEoS3RHFSfB3DHndpnNihIg72DctDNLmV2GMMiTu18uyI+7AUaYNR836fByxptfyhPtSQfw4kINZ3V0GWKJGzzZ5NAOct4/FpRl8xliHetayCfUIuK9jwk0z9i6V6bA=","Modulus":"xlzmN1sBi2V1971MsPD5MTND9dAGncIzYqxa3H+9jx1mNDivY6JgKijUWm5a3D2Y1UPMB3kx6qUf3iH6pZHjq5bk938qRhxrPy9muW55U03HTiW4V5/ga0+OqXj5Tj4lz+29OiQHPErxLRgfXT+WBgrGb75ElzkHajKpJnPgzAZuarlUCwupJNQlav/crwOFrgkhGsnaOW13M8htiSLZozw5lxkbhYIei7YTTQZ3l6rVH1dPL8CvzRJJOTwbnU8k0sUmWiuOhrLzuinlr6uuOTocAVgbj943/witVFtN5B0yhetxEVgFCwxRDTOO1EKVHFtCiAyZBUOlK4gwZ+SbGQ==","P":"7dFfbAkZSdx/ieSMYJHoY1DKC4dLg80RObEEmuJ72MaVJLTtFuBPoRpYOrMUNuupIyPjZZsW8fHRlPRhKW7xFv+Q2aDudh1UaJzFZs3xYKoiXTU/j0B3TB3nrifVLMqsS+8kHOWOojwA4dMjI6GCYCpKmYVvMOE1cuJrQ9EYxoM=","Q":"1YdN8mLchLVoTEwD34Pi3T2U7EjjBDgDCzhjl7x5FBG73TyKMz1n7/KXkXcJ2rqIAsnLqCWpYUeRcWl+IQEQxFKoMwkvmQ33lRkOE0SBZ+FnUAMivRyxOD5qM9z4ccqx0ga4ZRgb1lR85f7VYtMSfIosOuSFxWAbV1e29utxhTM="}} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi/BasketServiceHttpApiModule.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi/BasketServiceHttpApiModule.cs deleted file mode 100644 index 53cb7ebb..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi/BasketServiceHttpApiModule.cs +++ /dev/null @@ -1,32 +0,0 @@ -using EShopOnAbp.BasketService.Localization; -using Localization.Resources.AbpUi; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.Localization; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - typeof(BasketServiceApplicationContractsModule), - typeof(AbpAspNetCoreMvcModule) - )] - public class BasketServiceHttpApiModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - ConfigureLocalization(); - } - - private void ConfigureLocalization() - { - Configure(options => - { - options.Resources - .Get() - .AddBaseTypes( - typeof(AbpUiResource) - ); - }); - } - } -} diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi/Controllers/BasketServiceController.cs b/services/basket/src/EShopOnAbp.BasketService.HttpApi/Controllers/BasketServiceController.cs deleted file mode 100644 index 73dc08bf..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi/Controllers/BasketServiceController.cs +++ /dev/null @@ -1,15 +0,0 @@ -using EShopOnAbp.BasketService.Localization; -using Volo.Abp.AspNetCore.Mvc; - -namespace EShopOnAbp.BasketService.Controllers -{ - /* Inherit your controllers from this class. - */ - public abstract class BasketServiceController : AbpControllerBase - { - protected BasketServiceController() - { - LocalizationResource = typeof(BasketServiceResource); - } - } -} \ No newline at end of file diff --git a/services/basket/src/EShopOnAbp.BasketService.HttpApi/EShopOnAbp.BasketService.HttpApi.csproj b/services/basket/src/EShopOnAbp.BasketService.HttpApi/EShopOnAbp.BasketService.HttpApi.csproj deleted file mode 100644 index 5a965429..00000000 --- a/services/basket/src/EShopOnAbp.BasketService.HttpApi/EShopOnAbp.BasketService.HttpApi.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.BasketService - - - - - - - - - - - diff --git a/services/basket/src/EShopOnAbp.BasketService/BasketServiceDomainErrorCodes.cs b/services/basket/src/EShopOnAbp.BasketService/BasketServiceDomainErrorCodes.cs new file mode 100644 index 00000000..4781d72a --- /dev/null +++ b/services/basket/src/EShopOnAbp.BasketService/BasketServiceDomainErrorCodes.cs @@ -0,0 +1,7 @@ +namespace EShopOnAbp.BasketService; + +public static class BasketServiceDomainErrorCodes +{ + /* You can add your business exception error codes here, as constants */ + public const string ProductNotFound = "ProductNotFound"; +} \ No newline at end of file diff --git a/services/basket/test/EShopOnAbp.BasketService.Application.Tests/BasketServiceApplicationTestBase.cs b/services/basket/test/EShopOnAbp.BasketService.Application.Tests/BasketServiceApplicationTestBase.cs deleted file mode 100644 index 543ed4db..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.Application.Tests/BasketServiceApplicationTestBase.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace EShopOnAbp.BasketService -{ - public abstract class BasketServiceApplicationTestBase : BasketServiceTestBase - { - - } -} diff --git a/services/basket/test/EShopOnAbp.BasketService.Application.Tests/BasketServiceApplicationTestModule.cs b/services/basket/test/EShopOnAbp.BasketService.Application.Tests/BasketServiceApplicationTestModule.cs deleted file mode 100644 index 3b79fe98..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.Application.Tests/BasketServiceApplicationTestModule.cs +++ /dev/null @@ -1,13 +0,0 @@ -using Volo.Abp.Modularity; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - typeof(BasketServiceApplicationModule), - typeof(BasketServiceDomainTestModule) - )] - public class BasketServiceApplicationTestModule : AbpModule - { - - } -} \ No newline at end of file diff --git a/services/basket/test/EShopOnAbp.BasketService.Application.Tests/EShopOnAbp.BasketService.Application.Tests.csproj b/services/basket/test/EShopOnAbp.BasketService.Application.Tests/EShopOnAbp.BasketService.Application.Tests.csproj deleted file mode 100644 index 431fed93..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.Application.Tests/EShopOnAbp.BasketService.Application.Tests.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.BasketService - - - - - - - - - - - - diff --git a/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/BasketServiceDomainTestBase.cs b/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/BasketServiceDomainTestBase.cs deleted file mode 100644 index 42793a73..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/BasketServiceDomainTestBase.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace EShopOnAbp.BasketService -{ - public abstract class BasketServiceDomainTestBase : BasketServiceTestBase - { - - } -} diff --git a/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/BasketServiceDomainTestModule.cs b/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/BasketServiceDomainTestModule.cs deleted file mode 100644 index ed20701f..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/BasketServiceDomainTestModule.cs +++ /dev/null @@ -1,11 +0,0 @@ -using Volo.Abp.Modularity; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - )] - public class BasketServiceDomainTestModule : AbpModule - { - - } -} \ No newline at end of file diff --git a/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/EShopOnAbp.BasketService.Domain.Tests.csproj b/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/EShopOnAbp.BasketService.Domain.Tests.csproj deleted file mode 100644 index 0f0bce74..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.Domain.Tests/EShopOnAbp.BasketService.Domain.Tests.csproj +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.BasketService - - - - - - - - - - - diff --git a/services/basket/test/EShopOnAbp.BasketService.EntityFrameworkCore.Tests/EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj b/services/basket/test/EShopOnAbp.BasketService.EntityFrameworkCore.Tests/EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj deleted file mode 100644 index 89046d2a..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.EntityFrameworkCore.Tests/EShopOnAbp.BasketService.EntityFrameworkCore.Tests.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.BasketService - - - - - - - - - - - - diff --git a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/BasketServiceConsoleApiClientModule.cs b/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/BasketServiceConsoleApiClientModule.cs deleted file mode 100644 index d600c5c3..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/BasketServiceConsoleApiClientModule.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using Microsoft.Extensions.DependencyInjection; -using Polly; -using Volo.Abp.Http.Client; -using Volo.Abp.Http.Client.IdentityModel; -using Volo.Abp.Modularity; - -namespace EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp -{ - [DependsOn( - typeof(BasketServiceHttpApiClientModule), - typeof(AbpHttpClientIdentityModelModule) - )] - public class BasketServiceConsoleApiClientModule : AbpModule - { - public override void PreConfigureServices(ServiceConfigurationContext context) - { - PreConfigure(options => - { - options.ProxyClientBuildActions.Add((remoteServiceName, clientBuilder) => - { - clientBuilder.AddTransientHttpErrorPolicy( - policyBuilder => policyBuilder.WaitAndRetryAsync(3, i => TimeSpan.FromSeconds(Math.Pow(2, i))) - ); - }); - }); - } - } -} diff --git a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs b/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs deleted file mode 100644 index d65a1ceb..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/ConsoleTestAppHostedService.cs +++ /dev/null @@ -1,37 +0,0 @@ -using Microsoft.Extensions.Hosting; -using System.Threading; -using System.Threading.Tasks; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; - -namespace EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp -{ - public class ConsoleTestAppHostedService : IHostedService - { - private readonly IConfiguration _configuration; - - public ConsoleTestAppHostedService(IConfiguration configuration) - { - _configuration = configuration; - } - - public async Task StartAsync(CancellationToken cancellationToken) - { - using (var application = AbpApplicationFactory.Create(options => - { - options.Services.ReplaceConfiguration(_configuration); - })) - { - application.Initialize(); - - //var demo = application.ServiceProvider.GetRequiredService(); - //await demo.RunAsync(); - - application.Shutdown(); - } - } - - public Task StopAsync(CancellationToken cancellationToken) => Task.CompletedTask; - } -} diff --git a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj b/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj deleted file mode 100644 index d86ab585..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp.csproj +++ /dev/null @@ -1,31 +0,0 @@ - - - - Exe - net6.0 - - - - - - PreserveNewest - Always - - - - PreserveNewest - Always - - - - - - - - - - - - - - diff --git a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/Program.cs b/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/Program.cs deleted file mode 100644 index ac8f80ac..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/Program.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System.Threading.Tasks; -using Microsoft.Extensions.Configuration; -using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; - -namespace EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp -{ - class Program - { - static async Task Main(string[] args) - { - await CreateHostBuilder(args).RunConsoleAsync(); - } - - public static IHostBuilder CreateHostBuilder(string[] args) => - Host.CreateDefaultBuilder(args) - .AddAppSettingsSecretsJson() - .ConfigureServices((hostContext, services) => - { - services.AddHostedService(); - }); - } -} diff --git a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/appsettings.json b/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/appsettings.json deleted file mode 100644 index 30cf29e5..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/appsettings.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "RemoteServices": { - "Default": { - "BaseUrl": "https://localhost:44376" - } - }, - "IdentityClients": { - "Default": { - "GrantType": "password", - "ClientId": "BasketService_App", - "ClientSecret": "1q2w3e*", - "UserName": "admin", - "UserPassword": "1q2w3E*", - "Authority": "https://localhost:44376", - "Scope": "BasketService" - } - } -} \ No newline at end of file diff --git a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json b/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json deleted file mode 100644 index 7a73a41b..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.HttpApi.Client.ConsoleTestApp/appsettings.secrets.json +++ /dev/null @@ -1,2 +0,0 @@ -{ -} \ No newline at end of file diff --git a/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestBase.cs b/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestBase.cs deleted file mode 100644 index ffc2b7c4..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestBase.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Threading.Tasks; -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; -using Volo.Abp.Modularity; -using Volo.Abp.Uow; -using Volo.Abp.Testing; - -namespace EShopOnAbp.BasketService -{ - /* All test classes are derived from this class, directly or indirectly. - */ - public abstract class BasketServiceTestBase : AbpIntegratedTest - where TStartupModule : IAbpModule - { - protected override void SetAbpApplicationCreationOptions(AbpApplicationCreationOptions options) - { - options.UseAutofac(); - } - - protected virtual Task WithUnitOfWorkAsync(Func func) - { - return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); - } - - protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func action) - { - using (var scope = ServiceProvider.CreateScope()) - { - var uowManager = scope.ServiceProvider.GetRequiredService(); - - using (var uow = uowManager.Begin(options)) - { - await action(); - - await uow.CompleteAsync(); - } - } - } - - protected virtual Task WithUnitOfWorkAsync(Func> func) - { - return WithUnitOfWorkAsync(new AbpUnitOfWorkOptions(), func); - } - - protected virtual async Task WithUnitOfWorkAsync(AbpUnitOfWorkOptions options, Func> func) - { - using (var scope = ServiceProvider.CreateScope()) - { - var uowManager = scope.ServiceProvider.GetRequiredService(); - - using (var uow = uowManager.Begin(options)) - { - var result = await func(); - await uow.CompleteAsync(); - return result; - } - } - } - } -} diff --git a/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestBaseModule.cs b/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestBaseModule.cs deleted file mode 100644 index a952ba0c..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestBaseModule.cs +++ /dev/null @@ -1,48 +0,0 @@ -using Microsoft.Extensions.DependencyInjection; -using Volo.Abp; -using Volo.Abp.Authorization; -using Volo.Abp.Autofac; -using Volo.Abp.Data; -using Volo.Abp.Modularity; -using Volo.Abp.Threading; - -namespace EShopOnAbp.BasketService -{ - [DependsOn( - typeof(AbpAutofacModule), - typeof(AbpTestBaseModule), - typeof(AbpAuthorizationModule), - typeof(BasketServiceDomainModule) - )] - public class BasketServiceTestBaseModule : AbpModule - { - - public override void ConfigureServices(ServiceConfigurationContext context) - { - //Configure(options => - //{ - // options.IsJobExecutionEnabled = false; - //}); - - context.Services.AddAlwaysAllowAuthorization(); - } - - public override void OnApplicationInitialization(ApplicationInitializationContext context) - { - SeedTestData(context); - } - - private static void SeedTestData(ApplicationInitializationContext context) - { - AsyncHelper.RunSync(async () => - { - using (var scope = context.ServiceProvider.CreateScope()) - { - await scope.ServiceProvider - .GetRequiredService() - .SeedAsync(); - } - }); - } - } -} diff --git a/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestDataSeedContributor.cs b/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestDataSeedContributor.cs deleted file mode 100644 index c4192cb8..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.TestBase/BasketServiceTestDataSeedContributor.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System.Threading.Tasks; -using Volo.Abp.Data; -using Volo.Abp.DependencyInjection; - -namespace EShopOnAbp.BasketService -{ - public class BasketServiceTestDataSeedContributor : IDataSeedContributor, ITransientDependency - { - public Task SeedAsync(DataSeedContext context) - { - /* Seed additional test data... */ - - return Task.CompletedTask; - } - } -} \ No newline at end of file diff --git a/services/basket/test/EShopOnAbp.BasketService.TestBase/EShopOnAbp.BasketService.TestBase.csproj b/services/basket/test/EShopOnAbp.BasketService.TestBase/EShopOnAbp.BasketService.TestBase.csproj deleted file mode 100644 index 1000f811..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.TestBase/EShopOnAbp.BasketService.TestBase.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - net6.0 - EShopOnAbp.BasketService - - - - - - - - - - - - - - - - - - - diff --git a/services/basket/test/EShopOnAbp.BasketService.TestBase/Security/FakeCurrentPrincipalAccessor.cs b/services/basket/test/EShopOnAbp.BasketService.TestBase/Security/FakeCurrentPrincipalAccessor.cs deleted file mode 100644 index d0b20003..00000000 --- a/services/basket/test/EShopOnAbp.BasketService.TestBase/Security/FakeCurrentPrincipalAccessor.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System.Collections.Generic; -using System.Security.Claims; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Security.Claims; - -namespace EShopOnAbp.BasketService.Security -{ - [Dependency(ReplaceServices = true)] - public class FakeCurrentPrincipalAccessor : ThreadCurrentPrincipalAccessor - { - protected override ClaimsPrincipal GetClaimsPrincipal() - { - return GetPrincipal(); - } - - private ClaimsPrincipal _principal; - - private ClaimsPrincipal GetPrincipal() - { - if (_principal == null) - { - lock (this) - { - if (_principal == null) - { - _principal = new ClaimsPrincipal( - new ClaimsIdentity( - new List - { - new Claim(AbpClaimTypes.UserId,"2e701e62-0953-4dd3-910b-dc6cc93ccb0d"), - new Claim(AbpClaimTypes.UserName,"admin"), - new Claim(AbpClaimTypes.Email,"admin@abp.io") - } - ) - ); - } - } - } - - return _principal; - } - } -} From 3daea46a7c4fe6dd00e2f1c417551da015559b80 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 15 Feb 2022 01:08:11 +0300 Subject: [PATCH 05/17] updated EShopOnAbp solution --- EShopOnAbp.sln | 14 +++++++------- .../Properties/launchSettings.json | 5 ++--- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/EShopOnAbp.sln b/EShopOnAbp.sln index 3cdee83d..7c9f39d2 100644 --- a/EShopOnAbp.sln +++ b/EShopOnAbp.sln @@ -35,12 +35,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.PublicWeb", "app EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.CatalogService.HttpApi.Host", "services\catalog\src\EShopOnAbp.CatalogService.HttpApi.Host\EShopOnAbp.CatalogService.HttpApi.Host.csproj", "{3381E059-A2B5-4660-AFDA-5063DEE64154}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.BasketService.HttpApi.Host", "services\basket\src\EShopOnAbp.BasketService.HttpApi.Host\EShopOnAbp.BasketService.HttpApi.Host.csproj", "{6AD19BC3-9B40-49AC-AD24-1769C57C60F1}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.OrderingService.HttpApi.Host", "services\ordering\src\EShopOnAbp.OrderingService.HttpApi.Host\EShopOnAbp.OrderingService.HttpApi.Host.csproj", "{CE23F65B-BCDD-40D5-8AB5-80D9F52D3FA1}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "EShopOnAbp.PaymentService.HttpApi.Host", "services\payment\src\EShopOnAbp.PaymentService.HttpApi.Host\EShopOnAbp.PaymentService.HttpApi.Host.csproj", "{7AE4C613-780E-4DA5-9B57-76F0D40D5146}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EShopOnAbp.BasketService", "services\basket\src\EShopOnAbp.BasketService\EShopOnAbp.BasketService.csproj", "{E373DD66-3247-4D95-B325-064BBBC337B1}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -95,10 +95,6 @@ Global {3381E059-A2B5-4660-AFDA-5063DEE64154}.Debug|Any CPU.Build.0 = Debug|Any CPU {3381E059-A2B5-4660-AFDA-5063DEE64154}.Release|Any CPU.ActiveCfg = Release|Any CPU {3381E059-A2B5-4660-AFDA-5063DEE64154}.Release|Any CPU.Build.0 = Release|Any CPU - {6AD19BC3-9B40-49AC-AD24-1769C57C60F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6AD19BC3-9B40-49AC-AD24-1769C57C60F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6AD19BC3-9B40-49AC-AD24-1769C57C60F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6AD19BC3-9B40-49AC-AD24-1769C57C60F1}.Release|Any CPU.Build.0 = Release|Any CPU {CE23F65B-BCDD-40D5-8AB5-80D9F52D3FA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CE23F65B-BCDD-40D5-8AB5-80D9F52D3FA1}.Debug|Any CPU.Build.0 = Debug|Any CPU {CE23F65B-BCDD-40D5-8AB5-80D9F52D3FA1}.Release|Any CPU.ActiveCfg = Release|Any CPU @@ -107,6 +103,10 @@ Global {7AE4C613-780E-4DA5-9B57-76F0D40D5146}.Debug|Any CPU.Build.0 = Debug|Any CPU {7AE4C613-780E-4DA5-9B57-76F0D40D5146}.Release|Any CPU.ActiveCfg = Release|Any CPU {7AE4C613-780E-4DA5-9B57-76F0D40D5146}.Release|Any CPU.Build.0 = Release|Any CPU + {E373DD66-3247-4D95-B325-064BBBC337B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E373DD66-3247-4D95-B325-064BBBC337B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E373DD66-3247-4D95-B325-064BBBC337B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E373DD66-3247-4D95-B325-064BBBC337B1}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -124,9 +124,9 @@ Global {2E0B715C-3AAD-47B3-B2EB-D34CB24CBEFA} = {1484E912-DCF3-4568-A72C-4C7622104DB8} {969029FC-CFCF-4F95-9778-E5C69117711E} = {866DB6CC-FEA8-4CC2-A2E4-143537D197B6} {3381E059-A2B5-4660-AFDA-5063DEE64154} = {F415FFFD-E52D-4EBE-98DC-067C1EFFFFE3} - {6AD19BC3-9B40-49AC-AD24-1769C57C60F1} = {F415FFFD-E52D-4EBE-98DC-067C1EFFFFE3} {CE23F65B-BCDD-40D5-8AB5-80D9F52D3FA1} = {F415FFFD-E52D-4EBE-98DC-067C1EFFFFE3} {7AE4C613-780E-4DA5-9B57-76F0D40D5146} = {F415FFFD-E52D-4EBE-98DC-067C1EFFFFE3} + {E373DD66-3247-4D95-B325-064BBBC337B1} = {F415FFFD-E52D-4EBE-98DC-067C1EFFFFE3} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {26F82565-C6A4-439D-93A4-3251E3E7D5B0} diff --git a/services/basket/src/EShopOnAbp.BasketService/Properties/launchSettings.json b/services/basket/src/EShopOnAbp.BasketService/Properties/launchSettings.json index 75ea0aca..4764438c 100644 --- a/services/basket/src/EShopOnAbp.BasketService/Properties/launchSettings.json +++ b/services/basket/src/EShopOnAbp.BasketService/Properties/launchSettings.json @@ -3,8 +3,7 @@ "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { - "applicationUrl": "http://localhost:43756", - "sslPort": 44365 + "applicationUrl": "https://localhost:44355" } }, "profiles": { @@ -12,7 +11,7 @@ "commandName": "Project", "dotnetRunMessages": true, "launchBrowser": true, - "applicationUrl": "https://localhost:7198;http://localhost:5198", + "applicationUrl": "https://localhost:44355", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development" } From 9594adaf42b2db62fd75561884734d088e63ed40 Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 15 Feb 2022 01:36:51 +0300 Subject: [PATCH 06/17] catalog service order dependency fix --- ...atalogServiceApplicationContractsModule.cs | 25 +++++----- .../CatalogServiceApplicationModule.cs | 26 +++++----- .../CatalogServiceDomainSharedModule.cs | 47 +++++++++---------- ...pOnAbp.CatalogService.Domain.Shared.csproj | 2 +- .../CatalogServiceDomainModule.cs | 40 +++++++--------- 5 files changed, 64 insertions(+), 76 deletions(-) diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Application.Contracts/CatalogServiceApplicationContractsModule.cs b/services/catalog/src/EShopOnAbp.CatalogService.Application.Contracts/CatalogServiceApplicationContractsModule.cs index d73ef49b..26d4fbf1 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Application.Contracts/CatalogServiceApplicationContractsModule.cs +++ b/services/catalog/src/EShopOnAbp.CatalogService.Application.Contracts/CatalogServiceApplicationContractsModule.cs @@ -3,19 +3,18 @@ using Volo.Abp.Authorization; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; -namespace EShopOnAbp.CatalogService +namespace EShopOnAbp.CatalogService; + +[DependsOn( + typeof(CatalogServiceDomainSharedModule), + typeof(AbpObjectExtendingModule), + typeof(AbpDddApplicationContractsModule), + typeof(AbpAuthorizationModule) +)] +public class CatalogServiceApplicationContractsModule : AbpModule { - [DependsOn( - typeof(CatalogServiceDomainSharedModule), - typeof(AbpObjectExtendingModule), - typeof(AbpDddApplicationContractsModule), - typeof(AbpAuthorizationModule) - )] - public class CatalogServiceApplicationContractsModule : AbpModule + public override void PreConfigureServices(ServiceConfigurationContext context) { - public override void PreConfigureServices(ServiceConfigurationContext context) - { - CatalogServiceDtoExtensions.Configure(); - } + CatalogServiceDtoExtensions.Configure(); } -} +} \ No newline at end of file diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Application/CatalogServiceApplicationModule.cs b/services/catalog/src/EShopOnAbp.CatalogService.Application/CatalogServiceApplicationModule.cs index b32e87d3..a68fdb7a 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Application/CatalogServiceApplicationModule.cs +++ b/services/catalog/src/EShopOnAbp.CatalogService.Application/CatalogServiceApplicationModule.cs @@ -2,21 +2,17 @@ using Volo.Abp.AutoMapper; using Volo.Abp.Modularity; -namespace EShopOnAbp.CatalogService +namespace EShopOnAbp.CatalogService; + +[DependsOn( + typeof(CatalogServiceDomainModule), + typeof(CatalogServiceApplicationContractsModule), + typeof(AbpDddApplicationModule) +)] +public class CatalogServiceApplicationModule : AbpModule { - [DependsOn( - typeof(CatalogServiceDomainModule), - typeof(CatalogServiceApplicationContractsModule), - typeof(AbpDddApplicationModule) - )] - public class CatalogServiceApplicationModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - options.AddMaps(); - }); - } + Configure(options => { options.AddMaps(); }); } -} +} \ No newline at end of file diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/CatalogServiceDomainSharedModule.cs b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/CatalogServiceDomainSharedModule.cs index 6b3c0ee8..392b3b2e 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/CatalogServiceDomainSharedModule.cs +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/CatalogServiceDomainSharedModule.cs @@ -6,34 +6,33 @@ using Volo.Abp.Validation; using Volo.Abp.Validation.Localization; using Volo.Abp.VirtualFileSystem; -namespace EShopOnAbp.CatalogService +namespace EShopOnAbp.CatalogService; + +[DependsOn( + typeof(AbpValidationModule) +)] +public class CatalogServiceDomainSharedModule : AbpModule { - [DependsOn( - typeof(AbpValidationModule) - )] - public class CatalogServiceDomainSharedModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + Configure(options => { - Configure(options => - { - options.FileSets.AddEmbedded(); - }); + options.FileSets.AddEmbedded(); + }); - Configure(options => - { - options.Resources - .Add("en") - .AddBaseTypes(typeof(AbpValidationResource)) - .AddVirtualJson("/Localization/CatalogService"); + Configure(options => + { + options.Resources + .Add("en") + .AddBaseTypes(typeof(AbpValidationResource)) + .AddVirtualJson("/Localization/CatalogService"); - options.DefaultResourceType = typeof(CatalogServiceResource); - }); + options.DefaultResourceType = typeof(CatalogServiceResource); + }); - Configure(options => - { - options.MapCodeNamespace("CatalogService", typeof(CatalogServiceResource)); - }); - } + Configure(options => + { + options.MapCodeNamespace("CatalogService", typeof(CatalogServiceResource)); + }); } -} +} \ No newline at end of file diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/EShopOnAbp.CatalogService.Domain.Shared.csproj b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/EShopOnAbp.CatalogService.Domain.Shared.csproj index 1c136c24..7a271c66 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/EShopOnAbp.CatalogService.Domain.Shared.csproj +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain.Shared/EShopOnAbp.CatalogService.Domain.Shared.csproj @@ -17,7 +17,7 @@ - + diff --git a/services/catalog/src/EShopOnAbp.CatalogService.Domain/CatalogServiceDomainModule.cs b/services/catalog/src/EShopOnAbp.CatalogService.Domain/CatalogServiceDomainModule.cs index aeefa861..95106895 100644 --- a/services/catalog/src/EShopOnAbp.CatalogService.Domain/CatalogServiceDomainModule.cs +++ b/services/catalog/src/EShopOnAbp.CatalogService.Domain/CatalogServiceDomainModule.cs @@ -1,32 +1,26 @@ -using EShopOnAbp.BasketService; -using EShopOnAbp.CatalogService.Products; +using EShopOnAbp.CatalogService.Products; using Volo.Abp.AutoMapper; using Volo.Abp.Domain; using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.Modularity; -namespace EShopOnAbp.CatalogService +namespace EShopOnAbp.CatalogService; + +[DependsOn( + typeof(CatalogServiceDomainSharedModule), + typeof(AbpDddDomainModule), + typeof(AbpAutoMapperModule) +)] +public class CatalogServiceDomainModule : AbpModule { - [DependsOn( - typeof(CatalogServiceDomainSharedModule), - typeof(AbpDddDomainModule), - typeof(AbpAutoMapperModule), - typeof(BasketServiceDomainSharedModule) - )] - public class CatalogServiceDomainModule : AbpModule + public override void ConfigureServices(ServiceConfigurationContext context) { - public override void ConfigureServices(ServiceConfigurationContext context) + Configure(options => { options.AddMaps(validate: true); }); + + Configure(options => { - Configure(options => - { - options.AddMaps(validate: true); - }); - - Configure(options => - { - options.AutoEventSelectors.Add(); - options.EtoMappings.Add(); - }); - } + options.AutoEventSelectors.Add(); + options.EtoMappings.Add(); + }); } -} +} \ No newline at end of file From 7e9ce852482950360f8d25300f5786f3f7c0ce8a Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 15 Feb 2022 01:37:14 +0300 Subject: [PATCH 07/17] fixed ordering test --- .../Orders/OrderApplication_Tests.cs | 2 +- .../Orders/OrderRepository_Tests.cs | 2 +- .../OrderingServiceTestDataSeedContributor.cs | 11 +++++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/services/ordering/test/EShopOnAbp.OrderingService.Application.Tests/Orders/OrderApplication_Tests.cs b/services/ordering/test/EShopOnAbp.OrderingService.Application.Tests/Orders/OrderApplication_Tests.cs index 79d35857..247737af 100644 --- a/services/ordering/test/EShopOnAbp.OrderingService.Application.Tests/Orders/OrderApplication_Tests.cs +++ b/services/ordering/test/EShopOnAbp.OrderingService.Application.Tests/Orders/OrderApplication_Tests.cs @@ -45,7 +45,7 @@ public class OrderApplication_Tests:OrderingServiceApplicationTestBase var placedOrder = await _orderAppService.CreateAsync(new OrderCreateDto() { - PaymentMethod = 1, + PaymentMethod = "paypal", Address = new OrderAddressDto() { City = "Test City", Country = "Test Country", Description = "No Description", Street = "Test Street", diff --git a/services/ordering/test/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests/EntityFrameworkCore/Orders/OrderRepository_Tests.cs b/services/ordering/test/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests/EntityFrameworkCore/Orders/OrderRepository_Tests.cs index dd60c26f..580b80e4 100644 --- a/services/ordering/test/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests/EntityFrameworkCore/Orders/OrderRepository_Tests.cs +++ b/services/ordering/test/EShopOnAbp.OrderingService.EntityFrameworkCore.Tests/EntityFrameworkCore/Orders/OrderRepository_Tests.cs @@ -54,7 +54,7 @@ public class OrderRepository_Tests : SampleRepository_Tests(); orderItems.Add((Guid.NewGuid(), "Test product", "Code:001", 15, 0, "", 1)); var createdOrder = await _orderManager.CreateOrderAsync( - 1, + "paypal", Guid.Parse("11CA0F6D-208E-441A-9F9B-3611C96E4383"), "gterdem", "gterdem@volosoft.com", diff --git a/services/ordering/test/EShopOnAbp.OrderingService.TestBase/OrderingServiceTestDataSeedContributor.cs b/services/ordering/test/EShopOnAbp.OrderingService.TestBase/OrderingServiceTestDataSeedContributor.cs index 4b2e3aa3..86f2f617 100644 --- a/services/ordering/test/EShopOnAbp.OrderingService.TestBase/OrderingServiceTestDataSeedContributor.cs +++ b/services/ordering/test/EShopOnAbp.OrderingService.TestBase/OrderingServiceTestDataSeedContributor.cs @@ -1,5 +1,4 @@ -using System; -using System.Threading.Tasks; +using System.Threading.Tasks; using EShopOnAbp.OrderingService.Orders; using Volo.Abp.Data; using Volo.Abp.DependencyInjection; @@ -30,7 +29,7 @@ namespace EShopOnAbp.OrderingService private async Task SeedTestOrdersAsync() { await _orderManager.CreateOrderAsync( - 1, + "paypal", _testData.CurrentUserId, _testData.CurrentUserName, _testData.CurrentUserEmail, @@ -42,7 +41,7 @@ namespace EShopOnAbp.OrderingService ); await _orderManager.CreateOrderAsync( - 1, _testData.CurrentUserId, _testData.CurrentUserName, _testData.CurrentUserEmail, + "paypal", _testData.CurrentUserId, _testData.CurrentUserName, _testData.CurrentUserEmail, _testProducts.GetRandomProducts(10), _testData.Address.Street, _testData.Address.City, @@ -51,7 +50,7 @@ namespace EShopOnAbp.OrderingService ); await _orderManager.CreateOrderAsync( - 1, _testData.CurrentUserId, _testData.CurrentUserName, _testData.CurrentUserEmail, + "paypal", _testData.CurrentUserId, _testData.CurrentUserName, _testData.CurrentUserEmail, _testProducts.GetRandomProducts(2), _testData.Address.Street, _testData.Address.City, @@ -60,7 +59,7 @@ namespace EShopOnAbp.OrderingService ); await _orderManager.CreateOrderAsync( - 1, _testData.TestUserId, _testData.TestUserName, _testData.TestUserEmail, + "paypal", _testData.TestUserId, _testData.TestUserName, _testData.TestUserEmail, _testProducts.GetRandomProducts(7), _testData.Address.Street, _testData.Address.City, From dc0f17988fa78a66bcc5504b36677c1756e64e4c Mon Sep 17 00:00:00 2001 From: Galip Tolga Erdem Date: Tue, 15 Feb 2022 01:39:27 +0300 Subject: [PATCH 08/17] fixed public web basket service references --- .../src/EShopOnAbp.PublicWeb/BasketProductEventHandler.cs | 2 +- .../EShopOnAbp.PublicWeb/Components/Basket/Default.cshtml | 2 +- .../Components/Payment/PaymentWidgetViewComponent.cs | 3 +-- .../Components/Purchase/PurchaseWidgetViewComponent.cs | 2 +- .../Components/Toolbar/Cart/Default.cshtml | 3 +-- .../src/EShopOnAbp.PublicWeb/EShopOnAbp.PublicWeb.csproj | 2 +- .../EShopOnAbpPublicAutoMapperProfile.cs | 2 +- .../src/EShopOnAbp.PublicWeb/EShopOnAbpPublicWebModule.cs | 2 +- .../src/EShopOnAbp.PublicWeb/Pages/Payment.cshtml.cs | 5 ++--- .../ServiceProviders/UserBasketProvider.cs | 4 ++-- 10 files changed, 12 insertions(+), 15 deletions(-) diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/BasketProductEventHandler.cs b/apps/public-web/src/EShopOnAbp.PublicWeb/BasketProductEventHandler.cs index d670d30b..17b39bb9 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/BasketProductEventHandler.cs +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/BasketProductEventHandler.cs @@ -1,5 +1,5 @@ using System.Threading.Tasks; -using EShopOnAbp.BasketService; +using EShopOnAbp.BasketService.Entities; using Microsoft.AspNetCore.SignalR; using Volo.Abp.DependencyInjection; using Volo.Abp.EventBus.Distributed; diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Basket/Default.cshtml b/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Basket/Default.cshtml index 995a0f1a..70b8ea2a 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Basket/Default.cshtml +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Basket/Default.cshtml @@ -1,7 +1,7 @@ @using EShopOnAbp.Localization @using EShopOnAbp.PublicWeb.Components.Purchase @using Microsoft.Extensions.Localization -@model EShopOnAbp.BasketService.BasketDto +@model EShopOnAbp.BasketService.Services.Dtos.BasketDto @inject IStringLocalizer L
diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Payment/PaymentWidgetViewComponent.cs b/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Payment/PaymentWidgetViewComponent.cs index 85020fde..39af63b3 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Payment/PaymentWidgetViewComponent.cs +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Payment/PaymentWidgetViewComponent.cs @@ -1,7 +1,6 @@ using System.Collections.Generic; using System.Threading.Tasks; -using EShopOnAbp.BasketService; -using EShopOnAbp.PaymentService.PaymentMethods; +using EShopOnAbp.BasketService.Services.Dtos; using EShopOnAbp.PublicWeb.ServiceProviders; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Purchase/PurchaseWidgetViewComponent.cs b/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Purchase/PurchaseWidgetViewComponent.cs index ca7699b5..76b0eede 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Purchase/PurchaseWidgetViewComponent.cs +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Purchase/PurchaseWidgetViewComponent.cs @@ -1,5 +1,5 @@ using System.Threading.Tasks; -using EShopOnAbp.BasketService; +using EShopOnAbp.BasketService.Services.Dtos; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.Widgets; diff --git a/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Toolbar/Cart/Default.cshtml b/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Toolbar/Cart/Default.cshtml index 62cbfb03..8509b035 100644 --- a/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Toolbar/Cart/Default.cshtml +++ b/apps/public-web/src/EShopOnAbp.PublicWeb/Components/Toolbar/Cart/Default.cshtml @@ -1,8 +1,7 @@ @using EShopOnAbp.BasketService.Localization -@using EShopOnAbp.PublicWeb.Components.Basket @using Microsoft.AspNetCore.Mvc.Localization @inject IHtmlLocalizer L -@model EShopOnAbp.BasketService.BasketDto +@model EShopOnAbp.BasketService.Services.Dtos.BasketDto