gitextract_r_shzeh4/ ├── .github/ │ └── workflows/ │ └── dotnet-core.yml ├── .gitignore ├── .postman_project/ │ └── Dotnet_Istanbul.postman_collection.json ├── .vscode/ │ ├── launch.json │ └── tasks.json ├── DotnetIst.Api/ │ ├── README.MD │ └── src/ │ └── Api/ │ ├── Api.csproj │ ├── Authentication/ │ │ ├── AuthenticationExtensions.cs │ │ ├── AuthenticationService.cs │ │ ├── IAuthenticationService.cs │ │ └── Model/ │ │ ├── LoginModel.cs │ │ └── TokenModel.cs │ ├── Commands/ │ │ ├── Baskets/ │ │ │ └── AddProductToBasket.cs │ │ ├── Customers/ │ │ │ └── CreateCustomer.cs │ │ └── Orders/ │ │ └── CreateOrder.cs │ ├── Controllers/ │ │ ├── BaseController.cs │ │ ├── BasketController.cs │ │ ├── CustomerController.cs │ │ ├── HomeController.cs │ │ ├── OrderController.cs │ │ ├── ProductController.cs │ │ └── TokenController.cs │ ├── HttpServices/ │ │ ├── CustomerHttpService.cs │ │ ├── ICustomerHttpService.cs │ │ ├── IProductHttpService.cs │ │ └── ProductHttpService.cs │ ├── Models/ │ │ └── Customer.cs │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── DotnetIst.Services.Customers/ │ ├── README.MD │ └── src/ │ └── Services.Customers/ │ ├── Commands/ │ │ ├── AddProductToBasket.cs │ │ └── CreateCustomer.cs │ ├── Controllers/ │ │ ├── BasketController.cs │ │ ├── CustomerController.cs │ │ └── HomeController.cs │ ├── Data/ │ │ ├── CustomerDBContext.cs │ │ ├── Entity/ │ │ │ ├── Basket.cs │ │ │ ├── BasketItem.cs │ │ │ └── Customer.cs │ │ ├── Migrations/ │ │ │ ├── 20190308211118_initial.Designer.cs │ │ │ ├── 20190308211118_initial.cs │ │ │ ├── 20190308222102_base_entity.Designer.cs │ │ │ ├── 20190308222102_base_entity.cs │ │ │ └── CustomerDBContextModelSnapshot.cs │ │ └── SeedData.cs │ ├── Events/ │ │ ├── OrderCompleted.cs │ │ └── ProductAddedToBasket.cs │ ├── Handlers/ │ │ ├── AddProductToBasketHandler.cs │ │ ├── CreateCustomerdHandler.cs │ │ └── OrderCompletedHandler.cs │ ├── HttpServices/ │ │ ├── IProductHttpService.cs │ │ └── ProductHttpService.cs │ ├── Models/ │ │ └── Product.cs │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Services.Customers.csproj │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── DotnetIst.Services.Notifications/ │ ├── README.MD │ └── src/ │ └── Services.Notifications/ │ ├── Controllers/ │ │ └── HomeController.cs │ ├── Events/ │ │ ├── OrderCompleted.cs │ │ └── OrderFailed.cs │ ├── Handlers/ │ │ ├── OrderCompletedHandler.cs │ │ └── OrderFailedHandler.cs │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Services.Notifications.csproj │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── DotnetIst.Services.Orders/ │ ├── README.md │ └── src/ │ └── Services.Orders/ │ ├── Commands/ │ │ └── CreateOrder.cs │ ├── Controllers/ │ │ └── HomeController.cs │ ├── Data/ │ │ ├── Entity/ │ │ │ ├── Order.cs │ │ │ ├── OrderItem.cs │ │ │ └── OrderStatus.cs │ │ ├── Migrations/ │ │ │ ├── 20190308211841_initial.Designer.cs │ │ │ ├── 20190308211841_initial.cs │ │ │ ├── 20190308222202_base_entity.Designer.cs │ │ │ ├── 20190308222202_base_entity.cs │ │ │ └── OrderDBContextModelSnapshot.cs │ │ ├── OrderDBContext.cs │ │ └── SeedData.cs │ ├── Events/ │ │ ├── OrderCompleted.cs │ │ ├── OrderCreated.cs │ │ ├── OrderFailed.cs │ │ ├── ProductsReserveFailed.cs │ │ └── ProductsReserved.cs │ ├── Handlers/ │ │ ├── CreateOrderHandler.cs │ │ ├── ProductsReserveFailedHandler.cs │ │ └── ProductsReservedHandler.cs │ ├── HttpServices/ │ │ ├── CustomerHttpService.cs │ │ └── ICustomerHttpService.cs │ ├── Models/ │ │ ├── Basket.cs │ │ └── BasketItem.cs │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Services.Orders.csproj │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── DotnetIst.Services.Products/ │ ├── README.md │ └── src/ │ └── Services.Products/ │ ├── Controllers/ │ │ ├── HomeController.cs │ │ └── ProductController.cs │ ├── Data/ │ │ ├── Entity/ │ │ │ └── Product.cs │ │ ├── Migrations/ │ │ │ ├── 20190308212022_initial.Designer.cs │ │ │ ├── 20190308212022_initial.cs │ │ │ ├── 20190308222331_base_entity.Designer.cs │ │ │ ├── 20190308222331_base_entity.cs │ │ │ └── ProductDBContextModelSnapshot.cs │ │ ├── ProductDBContext.cs │ │ └── SeedData.cs │ ├── Events/ │ │ ├── OrderCreated.cs │ │ ├── ProductsReserveFailed.cs │ │ └── ProductsReserved.cs │ ├── Handlers/ │ │ └── OrderCreatedHandler.cs │ ├── Program.cs │ ├── Properties/ │ │ └── launchSettings.json │ ├── Services.Products.csproj │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── DotnetIst.Shared/ │ └── src/ │ └── Shared/ │ ├── Extensions.cs │ ├── Logging/ │ │ └── LoggingExtensions.cs │ ├── MessageHandlers/ │ │ ├── ICommandHandler.cs │ │ └── IEventHandler.cs │ ├── Messages/ │ │ ├── ICommand.cs │ │ ├── IEvent.cs │ │ └── MessageNamespaceAttribute.cs │ ├── Models/ │ │ ├── BaseEntity.cs │ │ └── HttpServiceOptions.cs │ ├── RabbitMq/ │ │ ├── BusPublisher.cs │ │ ├── BusSubscriber.cs │ │ ├── CorrelationContext.cs │ │ ├── IBusPublisher.cs │ │ ├── IBusSubscriber.cs │ │ ├── ICorrelationContext.cs │ │ ├── RabbitMqExtensions.cs │ │ └── RabbitMqOptions.cs │ └── Shared.csproj ├── README.md ├── docker-compose.yml └── dotnet-istanbul-microservices-demo.sln