gitextract__0w2wh4p/ ├── .dockerignore ├── .gitattributes ├── .gitignore ├── ApiGateways/ │ ├── OcelotApiGateway/ │ │ ├── Dockerfile │ │ ├── OcelotApiGateway.csproj │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ ├── ocelot.Development.json │ │ ├── ocelot.Local.json │ │ └── ocelot.json │ └── OnlineShop.Aggregator/ │ └── OnlineShop.Aggregator/ │ ├── Controllers/ │ │ └── ShoppingController.cs │ ├── DTOs/ │ │ ├── BasketDTO.cs │ │ ├── BasketItemExtendedDTO.cs │ │ ├── CatalogDTO.cs │ │ ├── OrderResponseDTO.cs │ │ └── ShoppingDTO.cs │ ├── Dockerfile │ ├── Extensions/ │ │ └── HttpClientExtensions.cs │ ├── OnlineShop.Aggregator.csproj │ ├── OnlineShop.Aggregator.http │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Services/ │ │ ├── BasketService.cs │ │ ├── CatalogService.cs │ │ ├── IBasketService.cs │ │ ├── ICatalogService.cs │ │ ├── IOrderService.cs │ │ └── OrderService.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── BuildingBlocks/ │ └── EventBus.Messages/ │ ├── Common/ │ │ └── EventBusConstant.cs │ ├── EventBus.Messages.csproj │ └── Events/ │ ├── BasketCheckoutEvent.cs │ └── IntegrationBaseEvent.cs ├── OnlineShop.sln ├── README.md ├── Services/ │ ├── Basket/ │ │ └── Basket.Api/ │ │ ├── Basket.Api.csproj │ │ ├── Basket.Api.http │ │ ├── Controllers/ │ │ │ └── OrderController.cs │ │ ├── Dockerfile │ │ ├── Entities/ │ │ │ ├── BasketCheckout.cs │ │ │ ├── Order.cs │ │ │ └── OrderItem.cs │ │ ├── GrpcServices/ │ │ │ └── DiscountGrpcService.cs │ │ ├── Mapper/ │ │ │ └── BasketProfile.cs │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── Repositories/ │ │ │ ├── IOrderRepository.cs │ │ │ └── OrderRepository.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Catalog/ │ │ └── Catalog.Api/ │ │ ├── Catalog.Api.csproj │ │ ├── Catalog.Api.http │ │ ├── Controllers/ │ │ │ └── ProductController.cs │ │ ├── Data/ │ │ │ ├── CatalogContext.cs │ │ │ ├── CatalogContextSeed.cs │ │ │ └── ICatalogContext.cs │ │ ├── Dockerfile │ │ ├── Entities/ │ │ │ └── Product.cs │ │ ├── Products.Json │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── Repositories/ │ │ │ ├── IProductRepository.cs │ │ │ └── ProductRepository.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Discount/ │ │ ├── Discount.Api/ │ │ │ ├── Controllers/ │ │ │ │ └── CouponController.cs │ │ │ ├── Discount.Api.csproj │ │ │ ├── Discount.Api.http │ │ │ ├── Dockerfile │ │ │ ├── Entities/ │ │ │ │ └── Coupon.cs │ │ │ ├── Extensions/ │ │ │ │ └── HostExtensions.cs │ │ │ ├── Program.cs │ │ │ ├── Properties/ │ │ │ │ └── launchSettings.json │ │ │ ├── Repositories/ │ │ │ │ ├── CouponRepository.cs │ │ │ │ └── ICouponRepository.cs │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ └── Discount.Grpc/ │ │ ├── Discount.Grpc.csproj │ │ ├── Dockerfile │ │ ├── Entities/ │ │ │ └── Coupon.cs │ │ ├── Extensions/ │ │ │ └── HostExtensions.cs │ │ ├── Mapper/ │ │ │ └── DiscountProfile.cs │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── Protos/ │ │ │ └── discount.proto │ │ ├── Repositories/ │ │ │ ├── CouponRepository.cs │ │ │ └── ICouponRepository.cs │ │ ├── Services/ │ │ │ └── DiscountService.cs │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ └── Ordering/ │ ├── Ordering.Api/ │ │ ├── Controllers/ │ │ │ └── OrderController.cs │ │ ├── Dockerfile │ │ ├── EventBusConsumer/ │ │ │ └── BasketCheckoutConsumer.cs │ │ ├── HostExtensions.cs │ │ ├── Mapper/ │ │ │ └── CheckoutProfile.cs │ │ ├── Ordering.Api.csproj │ │ ├── Ordering.Api.http │ │ ├── Program.cs │ │ ├── Properties/ │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ ├── Ordering.Application/ │ │ ├── ApplicationServiceRegistration.cs │ │ ├── Behaviors/ │ │ │ ├── UnhandledExceptionBehavior.cs │ │ │ └── ValidationBehavior.cs │ │ ├── Contracts/ │ │ │ ├── Infrastructure/ │ │ │ │ └── IEmailService.cs │ │ │ └── Persistence/ │ │ │ ├── IAsyncRepository.cs │ │ │ └── IOrderRepository.cs │ │ ├── Exceptions/ │ │ │ ├── NotFoundException.cs │ │ │ └── ValidationException.cs │ │ ├── Features/ │ │ │ └── Orders/ │ │ │ ├── Commands/ │ │ │ │ ├── CreateOrder/ │ │ │ │ │ ├── CreateOrderCommand.cs │ │ │ │ │ ├── CreateOrderCommandHandler.cs │ │ │ │ │ └── CreateOrderCommandValidator.cs │ │ │ │ ├── DeleteOrder/ │ │ │ │ │ ├── DeleteOrderCommand.cs │ │ │ │ │ └── DeleteOrderCommandHandler.cs │ │ │ │ └── UpdateOrder/ │ │ │ │ ├── UpdateOrderCommand.cs │ │ │ │ ├── UpdateOrderCommandHandler.cs │ │ │ │ └── UpdateOrderCommandValidator.cs │ │ │ └── Queries/ │ │ │ └── GetOrdersList/ │ │ │ ├── GetOrdersListQuery.cs │ │ │ ├── GetOrdersListQueryHandler.cs │ │ │ └── OrderViewModel.cs │ │ ├── Mappings/ │ │ │ └── MappingProfile.cs │ │ ├── Models/ │ │ │ ├── Email.cs │ │ │ └── EmailSetting.cs │ │ └── Ordering.Application.csproj │ ├── Ordering.Domain/ │ │ ├── Common/ │ │ │ ├── EntityBase.cs │ │ │ └── ValueObject.cs │ │ ├── Entities/ │ │ │ └── Order.cs │ │ └── Ordering.Domain.csproj │ └── Ordering.Infrastructure/ │ ├── InfrastructureServiceRegistration.cs │ ├── Migrations/ │ │ ├── 20231211200458_Init.Designer.cs │ │ ├── 20231211200458_Init.cs │ │ └── OrderDBContextModelSnapshot.cs │ ├── Ordering.Infrastructure.csproj │ ├── Persistence/ │ │ ├── OrderDBContext.cs │ │ └── OrderDBContextSeed.cs │ ├── Proxies/ │ │ └── EmailService.cs │ └── Repositories/ │ ├── OrderRepository.cs │ └── RepositoryBase.cs ├── docker-compose.dcproj ├── docker-compose.override.yml ├── docker-compose.yml ├── launchSettings.json └── mongo_data/ ├── WiredTiger ├── WiredTiger.turtle ├── WiredTiger.wt ├── WiredTigerHS.wt ├── _mdb_catalog.wt ├── collection-0--2162413245845826319.wt ├── collection-2--2162413245845826319.wt ├── collection-4--2162413245845826319.wt ├── collection-7--2162413245845826319.wt ├── diagnostic.data/ │ ├── metrics.2023-12-05T22-35-19Z-00000 │ ├── metrics.2023-12-05T22-54-37Z-00000 │ ├── metrics.2023-12-05T22-56-43Z-00000 │ ├── metrics.2023-12-05T22-58-50Z-00000 │ ├── metrics.2023-12-05T23-02-35Z-00000 │ ├── metrics.2023-12-05T23-04-34Z-00000 │ ├── metrics.2023-12-06T09-50-37Z-00000 │ ├── metrics.2023-12-06T11-17-57Z-00000 │ ├── metrics.2023-12-06T11-45-54Z-00000 │ ├── metrics.2023-12-06T11-47-38Z-00000 │ ├── metrics.2023-12-06T11-49-51Z-00000 │ ├── metrics.2023-12-06T11-51-33Z-00000 │ ├── metrics.2023-12-06T12-01-34Z-00000 │ ├── metrics.2023-12-06T12-22-29Z-00000 │ ├── metrics.2023-12-06T12-25-10Z-00000 │ ├── metrics.2023-12-06T13-14-10Z-00000 │ ├── metrics.2023-12-06T22-44-00Z-00000 │ ├── metrics.2023-12-07T10-00-48Z-00000 │ ├── metrics.2023-12-07T10-42-49Z-00000 │ ├── metrics.2023-12-09T20-35-09Z-00000 │ ├── metrics.2023-12-09T20-52-53Z-00000 │ ├── metrics.2023-12-09T21-12-07Z-00000 │ ├── metrics.2023-12-09T21-22-39Z-00000 │ ├── metrics.2023-12-10T08-52-41Z-00000 │ ├── metrics.2023-12-10T08-53-11Z-00000 │ ├── metrics.2023-12-10T09-02-16Z-00000 │ ├── metrics.2023-12-10T09-03-51Z-00000 │ ├── metrics.2023-12-10T09-10-11Z-00000 │ ├── metrics.2023-12-10T09-12-08Z-00000 │ ├── metrics.2023-12-10T09-12-44Z-00000 │ ├── metrics.2023-12-10T09-14-28Z-00000 │ ├── metrics.2023-12-10T09-22-38Z-00000 │ ├── metrics.2023-12-10T09-24-18Z-00000 │ ├── metrics.2023-12-10T09-26-25Z-00000 │ ├── metrics.2023-12-10T09-27-56Z-00000 │ ├── metrics.2023-12-10T09-31-41Z-00000 │ ├── metrics.2023-12-10T09-34-53Z-00000 │ ├── metrics.2023-12-10T10-05-22Z-00000 │ ├── metrics.2023-12-10T10-06-22Z-00000 │ ├── metrics.2023-12-10T10-12-00Z-00000 │ ├── metrics.2023-12-10T10-20-34Z-00000 │ ├── metrics.2023-12-10T10-27-09Z-00000 │ ├── metrics.2023-12-10T12-12-15Z-00000 │ ├── metrics.2023-12-10T13-36-47Z-00000 │ ├── metrics.2023-12-10T13-43-27Z-00000 │ ├── metrics.2023-12-10T20-59-24Z-00000 │ ├── metrics.2023-12-11T12-23-14Z-00000 │ ├── metrics.2023-12-11T12-30-27Z-00000 │ ├── metrics.2023-12-11T13-08-05Z-00000 │ ├── metrics.2023-12-11T14-37-06Z-00000 │ ├── metrics.2023-12-11T19-48-10Z-00000 │ ├── metrics.2023-12-11T19-48-31Z-00000 │ ├── metrics.2023-12-12T08-42-51Z-00000 │ ├── metrics.2023-12-12T08-46-13Z-00000 │ ├── metrics.2023-12-12T08-49-01Z-00000 │ ├── metrics.2023-12-12T09-02-14Z-00000 │ ├── metrics.2023-12-12T12-16-33Z-00000 │ ├── metrics.2023-12-12T12-34-54Z-00000 │ ├── metrics.2023-12-12T12-37-21Z-00000 │ ├── metrics.2023-12-12T12-40-44Z-00000 │ ├── metrics.2023-12-12T12-45-56Z-00000 │ ├── metrics.2023-12-12T13-11-29Z-00000 │ ├── metrics.2023-12-12T13-14-47Z-00000 │ ├── metrics.2023-12-12T13-16-13Z-00000 │ ├── metrics.2023-12-12T13-17-38Z-00000 │ ├── metrics.2023-12-12T14-53-07Z-00000 │ ├── metrics.2023-12-13T09-56-35Z-00000 │ ├── metrics.2023-12-13T10-54-21Z-00000 │ ├── metrics.2023-12-13T10-56-58Z-00000 │ ├── metrics.2023-12-13T11-45-51Z-00000 │ ├── metrics.2023-12-13T11-46-22Z-00000 │ ├── metrics.2023-12-16T16-22-45Z-00000 │ ├── metrics.2023-12-17T14-03-32Z-00000 │ ├── metrics.2023-12-17T15-15-10Z-00000 │ └── metrics.2023-12-17T20-40-29Z-00000 ├── index-1--2162413245845826319.wt ├── index-3--2162413245845826319.wt ├── index-5--2162413245845826319.wt ├── index-6--2162413245845826319.wt ├── index-8--2162413245845826319.wt ├── journal/ │ ├── WiredTigerLog.0000000075 │ ├── WiredTigerPreplog.0000000001 │ └── WiredTigerPreplog.0000000002 ├── sizeStorer.wt └── storage.bson