├── demos └── asp-net-core │ ├── Divergent.Website │ ├── wwwroot │ │ ├── js │ │ │ ├── site.min.js │ │ │ └── site.js │ │ ├── favicon.ico │ │ ├── lib │ │ │ └── bootstrap │ │ │ │ └── dist │ │ │ │ └── fonts │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ └── css │ │ │ └── site.min.css │ ├── .bowerrc │ ├── Views │ │ ├── _ViewStart.cshtml │ │ └── _ViewImports.cshtml │ ├── appsettings.json │ ├── appsettings.Development.json │ ├── bower.json │ ├── Properties │ │ └── launchSettings.json │ ├── Controllers │ │ └── HomeController.cs │ └── Divergent.Website.csproj │ ├── Divergent.Sales.API │ ├── Properties │ │ └── launchSettings.json │ └── Divergent.Sales.API.csproj │ ├── Divergent.Shipping.API │ ├── Properties │ │ └── launchSettings.json │ └── Divergent.Shipping.API.csproj │ ├── ITOps.Json │ └── ITOps.Json.csproj │ ├── Divergent.Sales.ViewModelComposition.Events │ ├── OrdersLoaded.cs │ └── Divergent.Sales.ViewModelComposition.Events.csproj │ ├── Divergent.Sales.Data │ └── Divergent.Sales.Data.csproj │ ├── Divergent.Shipping.Data │ ├── Divergent.Shipping.Data.csproj │ └── Models │ │ └── Shipment.cs │ ├── Divergent.CompositionGateway │ ├── Properties │ │ └── launchSettings.json │ └── Divergent.CompositionGateway.csproj │ ├── Divergent.Website.sln.startup.json │ ├── Divergent.CompositionGateway.sln.startup.json │ ├── dsemo-requests-list.rest │ ├── ITOps.Data │ └── ITOps.Data.csproj │ ├── Divergent.Sales.ViewModelComposition │ └── Divergent.Sales.ViewModelComposition.csproj │ └── Divergent.Shipping.ViewModelComposition │ └── Divergent.Shipping.ViewModelComposition.csproj ├── global.json ├── exercises ├── 03-sagas │ ├── after │ │ ├── Divergent.Frontend │ │ │ ├── wwwroot │ │ │ │ ├── app │ │ │ │ │ └── presentation │ │ │ │ │ │ ├── dashboardView.html │ │ │ │ │ │ └── dashboardController.js │ │ │ │ ├── lib │ │ │ │ │ └── bootstrap │ │ │ │ │ │ └── fonts │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ └── assets │ │ │ │ │ └── site.css │ │ │ ├── Divergent.Frontend.csproj │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── Program.cs │ │ │ └── Startup.cs │ │ ├── Divergent.Sales │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Customers │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Finance │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── Messages │ │ │ │ └── Commands │ │ │ │ │ └── InitiatePaymentProcessCommand.cs │ │ │ └── appsettings.json │ │ ├── Divergent.Shipping │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Sagas │ │ │ │ └── ShippingSagaData.cs │ │ ├── Divergent.Sales.Data │ │ │ ├── Models │ │ │ │ ├── Product.cs │ │ │ │ └── Order.cs │ │ │ └── Divergent.Sales.Data.csproj │ │ ├── Divergent.Sales.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Finance.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Program.cs │ │ ├── Divergent.Sales.Messages │ │ │ ├── Divergent.Sales.Messages.csproj │ │ │ ├── Commands │ │ │ │ └── SubmitOrderCommand.cs │ │ │ └── Events │ │ │ │ └── OrderSubmittedEvent.cs │ │ ├── Divergent.Shipping.Data │ │ │ ├── Divergent.Shipping.Data.csproj │ │ │ ├── WeightCalculator.cs │ │ │ └── VolumeEstimator.cs │ │ ├── Divergent.Customers.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── Program.cs │ │ │ └── Divergent.Customers.API.csproj │ │ ├── Divergent.Finance.Messages │ │ │ ├── Divergent.Finance.Messages.csproj │ │ │ └── Events │ │ │ │ └── PaymentSucceededEvent.cs │ │ ├── externalsystems │ │ │ └── MastercardPaymentProvider │ │ │ │ ├── appsettings.json │ │ │ │ └── Properties │ │ │ │ └── launchSettings.json │ │ ├── Divergent.Customers.Data │ │ │ ├── Models │ │ │ │ ├── Order.cs │ │ │ │ └── Customer.cs │ │ │ └── Divergent.Customers.Data.csproj │ │ ├── Divergent.Finance.Data │ │ │ ├── Models │ │ │ │ ├── Price.cs │ │ │ │ └── OrderItemPrice.cs │ │ │ └── Divergent.Finance.Data.csproj │ │ ├── Divergent.Sales.ViewModelComposition.Events │ │ │ ├── Divergent.Sales.ViewModelComposition.Events.csproj │ │ │ └── OrdersLoaded.cs │ │ └── Divergent.CompositionGateway │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ └── Program.cs │ └── before │ │ ├── Divergent.Frontend │ │ ├── wwwroot │ │ │ ├── app │ │ │ │ └── presentation │ │ │ │ │ ├── dashboardView.html │ │ │ │ │ └── dashboardController.js │ │ │ ├── lib │ │ │ │ └── bootstrap │ │ │ │ │ └── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── assets │ │ │ │ └── site.css │ │ ├── Divergent.Frontend.csproj │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Program.cs │ │ └── Startup.cs │ │ ├── Divergent.Sales │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Finance │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── Messages │ │ │ └── Commands │ │ │ │ └── InitiatePaymentProcessCommand.cs │ │ └── appsettings.json │ │ ├── Divergent.Shipping │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Customers │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Sales.Data │ │ ├── Models │ │ │ ├── Product.cs │ │ │ └── Order.cs │ │ └── Divergent.Sales.Data.csproj │ │ ├── Divergent.Sales.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Finance.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Program.cs │ │ ├── Divergent.Sales.Messages │ │ ├── Divergent.Sales.Messages.csproj │ │ ├── Commands │ │ │ └── SubmitOrderCommand.cs │ │ └── Events │ │ │ └── OrderSubmittedEvent.cs │ │ ├── Divergent.Shipping.Data │ │ ├── Divergent.Shipping.Data.csproj │ │ ├── WeightCalculator.cs │ │ └── VolumeEstimator.cs │ │ ├── Divergent.Customers.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ ├── Program.cs │ │ └── Divergent.Customers.API.csproj │ │ ├── Divergent.Finance.Messages │ │ ├── Divergent.Finance.Messages.csproj │ │ └── Events │ │ │ └── PaymentSucceededEvent.cs │ │ ├── externalsystems │ │ └── MastercardPaymentProvider │ │ │ ├── appsettings.json │ │ │ └── Properties │ │ │ └── launchSettings.json │ │ ├── Divergent.Customers.Data │ │ ├── Models │ │ │ ├── Order.cs │ │ │ └── Customer.cs │ │ └── Divergent.Customers.Data.csproj │ │ ├── Divergent.Finance.Data │ │ ├── Models │ │ │ ├── Price.cs │ │ │ └── OrderItemPrice.cs │ │ └── Divergent.Finance.Data.csproj │ │ ├── Divergent.Sales.ViewModelComposition.Events │ │ ├── Divergent.Sales.ViewModelComposition.Events.csproj │ │ └── OrdersLoaded.cs │ │ └── Divergent.CompositionGateway │ │ ├── Properties │ │ └── launchSettings.json │ │ └── Program.cs ├── 04-integration │ ├── after │ │ ├── Divergent.Frontend │ │ │ ├── wwwroot │ │ │ │ ├── app │ │ │ │ │ └── presentation │ │ │ │ │ │ ├── dashboardView.html │ │ │ │ │ │ └── dashboardController.js │ │ │ │ ├── lib │ │ │ │ │ └── bootstrap │ │ │ │ │ │ └── fonts │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ └── assets │ │ │ │ │ └── site.css │ │ │ ├── Divergent.Frontend.csproj │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── Program.cs │ │ │ └── Startup.cs │ │ ├── Divergent.ITOps │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Sales │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Finance │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── Messages │ │ │ │ └── Commands │ │ │ │ │ └── InitiatePaymentProcessCommand.cs │ │ │ └── appsettings.json │ │ ├── Divergent.Shipping │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Sagas │ │ │ │ └── ShippingSagaData.cs │ │ ├── Divergent.Customers │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Sales.Data │ │ │ ├── Models │ │ │ │ ├── Product.cs │ │ │ │ └── Order.cs │ │ │ └── Divergent.Sales.Data.csproj │ │ ├── Divergent.Sales.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Finance.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Program.cs │ │ ├── Divergent.ITOps.Messages │ │ │ ├── Divergent.ITOps.Messages.csproj │ │ │ └── Commands │ │ │ │ └── ShipWithFedexCommand.cs │ │ ├── Divergent.Sales.Messages │ │ │ ├── Divergent.Sales.Messages.csproj │ │ │ ├── Commands │ │ │ │ └── SubmitOrderCommand.cs │ │ │ └── Events │ │ │ │ └── OrderSubmittedEvent.cs │ │ ├── Divergent.Customers.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Program.cs │ │ ├── Divergent.Finance.Messages │ │ │ ├── Divergent.Finance.Messages.csproj │ │ │ └── Events │ │ │ │ └── PaymentSucceededEvent.cs │ │ ├── externalsystems │ │ │ └── MastercardPaymentProvider │ │ │ │ ├── appsettings.json │ │ │ │ └── Properties │ │ │ │ └── launchSettings.json │ │ ├── Divergent.Customers.Data │ │ │ └── Models │ │ │ │ ├── Order.cs │ │ │ │ └── Customer.cs │ │ ├── Divergent.Finance.Data │ │ │ ├── Models │ │ │ │ ├── Price.cs │ │ │ │ └── OrderItemPrice.cs │ │ │ └── Divergent.Finance.Data.csproj │ │ ├── Divergent.ITOps.Interfaces │ │ │ ├── ShippingInfo.cs │ │ │ ├── IProvideCustomerInfo.cs │ │ │ ├── IProvideShippingInfo.cs │ │ │ ├── IRegisterServices.cs │ │ │ ├── CustomerInfo.cs │ │ │ └── Divergent.ITOps.Interfaces.csproj │ │ ├── Divergent.Sales.ViewModelComposition.Events │ │ │ ├── Divergent.Sales.ViewModelComposition.Events.csproj │ │ │ └── OrdersLoaded.cs │ │ ├── Divergent.CompositionGateway │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ └── Program.cs │ │ └── Divergent.Shipping.Data │ │ │ ├── Divergent.Shipping.Data.csproj │ │ │ ├── WeightCalculator.cs │ │ │ └── VolumeEstimator.cs │ └── before │ │ ├── Divergent.Frontend │ │ ├── wwwroot │ │ │ ├── app │ │ │ │ └── presentation │ │ │ │ │ ├── dashboardView.html │ │ │ │ │ └── dashboardController.js │ │ │ ├── lib │ │ │ │ └── bootstrap │ │ │ │ │ └── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── assets │ │ │ │ └── site.css │ │ ├── Divergent.Frontend.csproj │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Program.cs │ │ └── Startup.cs │ │ ├── Divergent.ITOps │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Sales │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Finance │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── Messages │ │ │ └── Commands │ │ │ │ └── InitiatePaymentProcessCommand.cs │ │ └── appsettings.json │ │ ├── Divergent.Shipping │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Sagas │ │ │ └── ShippingSagaData.cs │ │ ├── Divergent.Customers │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Sales.Data │ │ ├── Models │ │ │ ├── Product.cs │ │ │ └── Order.cs │ │ └── Divergent.Sales.Data.csproj │ │ ├── Divergent.Finance.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Program.cs │ │ ├── Divergent.Sales.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Customers.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Program.cs │ │ ├── Divergent.Finance.Messages │ │ ├── Divergent.Finance.Messages.csproj │ │ └── Events │ │ │ └── PaymentSucceededEvent.cs │ │ ├── Divergent.ITOps.Messages │ │ └── Divergent.ITOps.Messages.csproj │ │ ├── Divergent.Sales.Messages │ │ ├── Divergent.Sales.Messages.csproj │ │ ├── Commands │ │ │ └── SubmitOrderCommand.cs │ │ └── Events │ │ │ └── OrderSubmittedEvent.cs │ │ ├── externalsystems │ │ └── MastercardPaymentProvider │ │ │ ├── appsettings.json │ │ │ └── Properties │ │ │ └── launchSettings.json │ │ ├── Divergent.Customers.Data │ │ └── Models │ │ │ ├── Order.cs │ │ │ └── Customer.cs │ │ ├── Divergent.Finance.Data │ │ ├── Models │ │ │ ├── Price.cs │ │ │ └── OrderItemPrice.cs │ │ └── Divergent.Finance.Data.csproj │ │ ├── Divergent.ITOps.Interfaces │ │ ├── ShippingInfo.cs │ │ ├── IProvideCustomerInfo.cs │ │ ├── IProvideShippingInfo.cs │ │ ├── IRegisterServices.cs │ │ ├── CustomerInfo.cs │ │ └── Divergent.ITOps.Interfaces.csproj │ │ ├── Divergent.Sales.ViewModelComposition.Events │ │ ├── Divergent.Sales.ViewModelComposition.Events.csproj │ │ └── OrdersLoaded.cs │ │ ├── Divergent.CompositionGateway │ │ ├── Properties │ │ │ └── launchSettings.json │ │ └── Program.cs │ │ └── Divergent.Shipping.Data │ │ ├── Divergent.Shipping.Data.csproj │ │ ├── WeightCalculator.cs │ │ └── VolumeEstimator.cs ├── 01-composite-ui │ ├── after │ │ ├── Divergent.Frontend │ │ │ ├── wwwroot │ │ │ │ ├── app │ │ │ │ │ └── presentation │ │ │ │ │ │ ├── dashboardView.html │ │ │ │ │ │ └── dashboardController.js │ │ │ │ ├── lib │ │ │ │ │ └── bootstrap │ │ │ │ │ │ └── fonts │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ └── assets │ │ │ │ │ └── site.css │ │ │ ├── Divergent.Frontend.csproj │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── Program.cs │ │ │ └── Startup.cs │ │ ├── Divergent.Sales.Data │ │ │ ├── Models │ │ │ │ ├── Product.cs │ │ │ │ └── Order.cs │ │ │ └── Divergent.Sales.Data.csproj │ │ ├── Divergent.Finance.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Program.cs │ │ ├── Divergent.Sales.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Program.cs │ │ ├── Divergent.Customers.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ ├── Program.cs │ │ │ └── Divergent.Customers.API.csproj │ │ ├── Divergent.Customers.Data │ │ │ ├── Models │ │ │ │ ├── Order.cs │ │ │ │ └── Customer.cs │ │ │ └── Divergent.Customers.Data.csproj │ │ ├── Divergent.Finance.Data │ │ │ ├── Models │ │ │ │ ├── Price.cs │ │ │ │ └── OrderItemPrice.cs │ │ │ └── Divergent.Finance.Data.csproj │ │ ├── Divergent.Sales.ViewModelComposition.Events │ │ │ ├── Divergent.Sales.ViewModelComposition.Events.csproj │ │ │ └── OrdersLoaded.cs │ │ └── Divergent.CompositionGateway │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ └── Program.cs │ └── before │ │ ├── Divergent.Frontend │ │ ├── wwwroot │ │ │ ├── app │ │ │ │ └── presentation │ │ │ │ │ ├── dashboardView.html │ │ │ │ │ └── dashboardController.js │ │ │ ├── lib │ │ │ │ └── bootstrap │ │ │ │ │ └── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── assets │ │ │ │ └── site.css │ │ ├── Divergent.Frontend.csproj │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Program.cs │ │ └── Startup.cs │ │ ├── Divergent.Sales.Data │ │ ├── Models │ │ │ ├── Product.cs │ │ │ └── Order.cs │ │ └── Divergent.Sales.Data.csproj │ │ ├── Divergent.Sales.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Program.cs │ │ ├── Divergent.Customers.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Program.cs │ │ ├── Divergent.Finance.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Program.cs │ │ ├── Divergent.Customers.Data │ │ ├── Models │ │ │ ├── Order.cs │ │ │ └── Customer.cs │ │ └── Divergent.Customers.Data.csproj │ │ ├── Divergent.Finance.Data │ │ ├── Models │ │ │ ├── Price.cs │ │ │ └── OrderItemPrice.cs │ │ └── Divergent.Finance.Data.csproj │ │ ├── Divergent.Sales.ViewModelComposition.Events │ │ ├── Divergent.Sales.ViewModelComposition.Events.csproj │ │ └── OrdersLoaded.cs │ │ └── Divergent.CompositionGateway │ │ ├── Properties │ │ └── launchSettings.json │ │ └── Program.cs ├── 02-publish-subscribe │ ├── after │ │ ├── Divergent.Frontend │ │ │ ├── wwwroot │ │ │ │ ├── app │ │ │ │ │ └── presentation │ │ │ │ │ │ ├── dashboardView.html │ │ │ │ │ │ └── dashboardController.js │ │ │ │ ├── lib │ │ │ │ │ └── bootstrap │ │ │ │ │ │ └── fonts │ │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ └── assets │ │ │ │ │ └── site.css │ │ │ ├── Divergent.Frontend.csproj │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── Program.cs │ │ │ └── Startup.cs │ │ ├── Divergent.Sales │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Finance │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── Messages │ │ │ │ └── Commands │ │ │ │ │ └── InitiatePaymentProcessCommand.cs │ │ │ └── appsettings.json │ │ ├── Divergent.Shipping │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Customers │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Sales.Data │ │ │ ├── Models │ │ │ │ ├── Product.cs │ │ │ │ └── Order.cs │ │ │ └── Divergent.Sales.Data.csproj │ │ ├── Divergent.Finance.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Program.cs │ │ ├── Divergent.Sales.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ └── appsettings.json │ │ ├── Divergent.Shipping.Data │ │ │ ├── Divergent.Shipping.Data.csproj │ │ │ ├── WeightCalculator.cs │ │ │ └── VolumeEstimator.cs │ │ ├── Divergent.Customers.API │ │ │ ├── Properties │ │ │ │ └── launchSettings.json │ │ │ ├── appsettings.Development.json │ │ │ ├── appsettings.json │ │ │ └── Program.cs │ │ ├── Divergent.Finance.Messages │ │ │ ├── Divergent.Finance.Messages.csproj │ │ │ └── Events │ │ │ │ └── PaymentSucceededEvent.cs │ │ ├── Divergent.Sales.Messages │ │ │ ├── Divergent.Sales.Messages.csproj │ │ │ ├── Commands │ │ │ │ └── SubmitOrderCommand.cs │ │ │ └── Events │ │ │ │ └── OrderSubmittedEvent.cs │ │ ├── externalsystems │ │ │ └── MastercardPaymentProvider │ │ │ │ ├── appsettings.json │ │ │ │ └── Properties │ │ │ │ └── launchSettings.json │ │ ├── Divergent.Customers.Data │ │ │ ├── Models │ │ │ │ ├── Order.cs │ │ │ │ └── Customer.cs │ │ │ └── Divergent.Customers.Data.csproj │ │ ├── Divergent.Finance.Data │ │ │ ├── Models │ │ │ │ ├── Price.cs │ │ │ │ └── OrderItemPrice.cs │ │ │ └── Divergent.Finance.Data.csproj │ │ ├── Divergent.Sales.ViewModelComposition.Events │ │ │ ├── Divergent.Sales.ViewModelComposition.Events.csproj │ │ │ └── OrdersLoaded.cs │ │ └── Divergent.CompositionGateway │ │ │ ├── Properties │ │ │ └── launchSettings.json │ │ │ └── Program.cs │ └── before │ │ ├── Divergent.Frontend │ │ ├── wwwroot │ │ │ ├── app │ │ │ │ └── presentation │ │ │ │ │ ├── dashboardView.html │ │ │ │ │ └── dashboardController.js │ │ │ ├── lib │ │ │ │ └── bootstrap │ │ │ │ │ └── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ └── assets │ │ │ │ └── site.css │ │ ├── Divergent.Frontend.csproj │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── Program.cs │ │ └── Startup.cs │ │ ├── Divergent.Sales │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Finance │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── Messages │ │ │ └── Commands │ │ │ │ └── InitiatePaymentProcessCommand.cs │ │ └── appsettings.json │ │ ├── Divergent.Customers │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Shipping │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Sales.Data │ │ ├── Models │ │ │ ├── Product.cs │ │ │ └── Order.cs │ │ └── Divergent.Sales.Data.csproj │ │ ├── Divergent.Sales.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ └── appsettings.json │ │ ├── Divergent.Shipping.Data │ │ ├── Divergent.Shipping.Data.csproj │ │ ├── WeightCalculator.cs │ │ └── VolumeEstimator.cs │ │ ├── Divergent.Customers.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Program.cs │ │ ├── Divergent.Finance.API │ │ ├── Properties │ │ │ └── launchSettings.json │ │ ├── appsettings.Development.json │ │ ├── appsettings.json │ │ └── Program.cs │ │ ├── Divergent.Sales.Messages │ │ ├── Divergent.Sales.Messages.csproj │ │ └── Commands │ │ │ └── SubmitOrderCommand.cs │ │ ├── Divergent.Finance.Messages │ │ └── Divergent.Finance.Messages.csproj │ │ ├── externalsystems │ │ └── MastercardPaymentProvider │ │ │ ├── appsettings.json │ │ │ └── Properties │ │ │ └── launchSettings.json │ │ ├── Divergent.Customers.Data │ │ ├── Models │ │ │ ├── Order.cs │ │ │ └── Customer.cs │ │ └── Divergent.Customers.Data.csproj │ │ ├── Divergent.Finance.Data │ │ ├── Models │ │ │ ├── Price.cs │ │ │ └── OrderItemPrice.cs │ │ └── Divergent.Finance.Data.csproj │ │ ├── Divergent.Sales.ViewModelComposition.Events │ │ ├── Divergent.Sales.ViewModelComposition.Events.csproj │ │ └── OrdersLoaded.cs │ │ └── Divergent.CompositionGateway │ │ ├── Properties │ │ └── launchSettings.json │ │ └── Program.cs └── shared-api-gateway │ ├── ITOps.Json │ └── ITOps.Json.csproj │ └── ITOps.SharedConfiguration │ └── ITOps.SharedConfiguration.csproj ├── img └── platform-installer-on-edge │ ├── downloads-list.png │ ├── download-prompt.png │ └── download-unsafe-file-option.png ├── Directory.Build.props ├── targets └── Targets.csproj └── .gitattributes /demos/asp-net-core/Divergent.Website/wwwroot/js/site.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "wwwroot/lib" 3 | } 4 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/wwwroot/js/site.js: -------------------------------------------------------------------------------- 1 | // Write your Javascript code. 2 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/Views/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /global.json: -------------------------------------------------------------------------------- 1 | { 2 | "sdk": { 3 | "version": "8.0.400", 4 | "rollForward": "latestFeature" 5 | } 6 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/wwwroot/app/presentation/dashboardView.html: -------------------------------------------------------------------------------- 1 |
2 | This is the dashboard. 3 |
-------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/wwwroot/app/presentation/dashboardView.html: -------------------------------------------------------------------------------- 1 |
2 | This is the dashboard. 3 |
-------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/Views/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using Divergent.Website 2 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 3 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/wwwroot/app/presentation/dashboardView.html: -------------------------------------------------------------------------------- 1 |
2 | This is the dashboard. 3 |
-------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/app/presentation/dashboardView.html: -------------------------------------------------------------------------------- 1 |
2 | This is the dashboard. 3 |
-------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/app/presentation/dashboardView.html: -------------------------------------------------------------------------------- 1 |
2 | This is the dashboard. 3 |
-------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/wwwroot/app/presentation/dashboardView.html: -------------------------------------------------------------------------------- 1 |
2 | This is the dashboard. 3 |
-------------------------------------------------------------------------------- /img/platform-installer-on-edge/downloads-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/img/platform-installer-on-edge/downloads-list.png -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/app/presentation/dashboardView.html: -------------------------------------------------------------------------------- 1 |
2 | This is the dashboard. 3 |
-------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/app/presentation/dashboardView.html: -------------------------------------------------------------------------------- 1 |
2 | This is the dashboard. 3 |
-------------------------------------------------------------------------------- /img/platform-installer-on-edge/download-prompt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/img/platform-installer-on-edge/download-prompt.png -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/demos/asp-net-core/Divergent.Website/wwwroot/favicon.ico -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /img/platform-installer-on-edge/download-unsafe-file-option.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/img/platform-installer-on-edge/download-unsafe-file-option.png -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Warning" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Shipping/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Shipping": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Shipping/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Shipping": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.ITOps": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.ITOps": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Shipping/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Shipping": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Shipping/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Shipping": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Shipping/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Shipping": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Shipping/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Shipping": { 4 | "commandName": "Project" 5 | } 6 | } 7 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.Data/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Sales.Data.Models; 2 | 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.Data/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Sales.Data.Models; 2 | 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.Data/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Sales.Data.Models; 2 | 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.Data/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Sales.Data.Models; 2 | 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.Data/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Sales.Data.Models; 2 | 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.Data/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Sales.Data.Models; 2 | 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.Data/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Sales.Data.Models; 2 | 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.Data/Models/Product.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Sales.Data.Models; 2 | 3 | public class Product 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | } -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20295" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Shipping.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Shipping.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20296" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20185" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20185" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20187" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.Messages/Divergent.Sales.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Shipping.Data/Divergent.Shipping.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20187" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.Messages/Divergent.Sales.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Shipping.Data/Divergent.Shipping.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20185" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Finance.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20187" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20185" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20185" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20186" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.Messages/Divergent.Finance.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.Messages/Events/PaymentSucceededEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Events 2 | { 3 | public class PaymentSucceededEvent 4 | { 5 | public int OrderId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20186" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.Messages/Divergent.Finance.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.Messages/Events/PaymentSucceededEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Events 2 | { 3 | public class PaymentSucceededEvent 4 | { 5 | public int OrderId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20187" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps.Messages/Divergent.ITOps.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.Messages/Divergent.Sales.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20187" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20185" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Customers.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20186" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Customers.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20186" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Finance.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20187" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20187" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20185" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Shipping.Data/Divergent.Shipping.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Sales.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20185" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Shipping.Data/Divergent.Shipping.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/externalsystems/MastercardPaymentProvider/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/externalsystems/MastercardPaymentProvider/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20186" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.Messages/Divergent.Finance.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.Messages/Events/PaymentSucceededEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Events 2 | { 3 | public class PaymentSucceededEvent 4 | { 5 | public int OrderId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20186" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.Messages/Divergent.Finance.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.Messages/Events/PaymentSucceededEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Events 2 | { 3 | public class PaymentSucceededEvent 4 | { 5 | public int OrderId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps.Messages/Divergent.ITOps.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.Messages/Divergent.Sales.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/demos/asp-net-core/Divergent.Website/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/demos/asp-net-core/Divergent.Website/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/demos/asp-net-core/Divergent.Website/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/demos/asp-net-core/Divergent.Website/wwwroot/lib/bootstrap/dist/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20186" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.Messages/Divergent.Finance.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.Messages/Events/PaymentSucceededEvent.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Events 2 | { 3 | public class PaymentSucceededEvent 4 | { 5 | public int OrderId { get; set; } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.Messages/Divergent.Sales.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Customers.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20186" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance.API/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Finance.API": { 4 | "commandName": "Project", 5 | "applicationUrl": "http://localhost:20187" 6 | } 7 | } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.Messages/Divergent.Sales.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/03-sagas/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/03-sagas/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /exercises/04-integration/after/externalsystems/MastercardPaymentProvider/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/externalsystems/MastercardPaymentProvider/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/externalsystems/MastercardPaymentProvider/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance.Messages/Divergent.Finance.Messages.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Order 4 | { 5 | public int Id { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.Data/Models/Price.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class Price 4 | { 5 | public int Id { get; set; } 6 | public int ProductId { get; set; } 7 | public double ItemPrice { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/03-sagas/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/03-sagas/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/03-sagas/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/03-sagas/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/03-sagas/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/externalsystems/MastercardPaymentProvider/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft.AspNetCore": "Warning" 6 | } 7 | }, 8 | "AllowedHosts": "*" 9 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Order 4 | { 5 | public int Id { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.Data/Models/Price.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class Price 4 | { 5 | public int Id { get; set; } 6 | public int ProductId { get; set; } 7 | public double ItemPrice { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/03-sagas/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Customers.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Order 4 | { 5 | public int Id { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Finance.Data/Models/Price.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class Price 4 | { 5 | public int Id { get; set; } 6 | public int ProductId { get; set; } 7 | public double ItemPrice { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Customers.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Order 4 | { 5 | public int Id { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Finance.Data/Models/Price.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class Price 4 | { 5 | public int Id { get; set; } 6 | public int ProductId { get; set; } 7 | public double ItemPrice { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Shipping/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Shipping/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Order 4 | { 5 | public int Id { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.Data/Models/Price.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class Price 4 | { 5 | public int Id { get; set; } 6 | public int ProductId { get; set; } 7 | public double ItemPrice { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/04-integration/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/04-integration/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/04-integration/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps.Interfaces/ShippingInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.ITOps.Interfaces 2 | { 3 | public class PackageInfo 4 | { 5 | public double Weight { get; set; } 6 | public double Volume { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Order 4 | { 5 | public int Id { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.Data/Models/Price.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class Price 4 | { 5 | public int Id { get; set; } 6 | public int ProductId { get; set; } 7 | public double ItemPrice { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/04-integration/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/04-integration/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps.Interfaces/ShippingInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.ITOps.Interfaces 2 | { 3 | public class PackageInfo 4 | { 5 | public double Weight { get; set; } 6 | public double Volume { get; set; } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "IncludeScopes": false, 4 | "LogLevel": { 5 | "Default": "Debug", 6 | "System": "Information", 7 | "Microsoft": "Information" 8 | } 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Order 4 | { 5 | public int Id { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.Data/Models/Price.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class Price 4 | { 5 | public int Id { get; set; } 6 | public int ProductId { get; set; } 7 | public double ItemPrice { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Order 4 | { 5 | public int Id { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance.Data/Models/Price.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class Price 4 | { 5 | public int Id { get; set; } 6 | public int ProductId { get; set; } 7 | public double ItemPrice { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/Divergent.Frontend.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/Divergent.Frontend.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/04-integration/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Shipping/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/04-integration/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/04-integration/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Finance.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/Divergent.Frontend.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Finance.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/Divergent.Frontend.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/Divergent.Frontend.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/Divergent.Frontend.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Shipping/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Customers.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Customers.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/Divergent.Frontend.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Shipping/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/Divergent.Frontend.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Particular/Workshop/HEAD/exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/lib/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Shipping/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Shipping/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps.Interfaces/IProvideCustomerInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace Divergent.ITOps.Interfaces 4 | { 5 | public interface IProvideCustomerInfo 6 | { 7 | CustomerInfo GetCustomerInfo(int customerId); 8 | } 9 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps.Interfaces/IProvideCustomerInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Threading.Tasks; 2 | 3 | namespace Divergent.ITOps.Interfaces 4 | { 5 | public interface IProvideCustomerInfo 6 | { 7 | CustomerInfo GetCustomerInfo(int customerId); 8 | } 9 | } -------------------------------------------------------------------------------- /Directory.Build.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | true 5 | low 6 | all 7 | 8 | 9 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "asp.net", 3 | "private": true, 4 | "dependencies": { 5 | "bootstrap": "3.3.7", 6 | "jquery": "2.2.0", 7 | "jquery-validation": "1.14.0", 8 | "jquery-validation-unobtrusive": "3.2.6" 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers.API/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Shipping/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Shipping/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Information", 5 | "Microsoft": "Warning", 6 | "Microsoft.Hosting.Lifetime": "Information" 7 | } 8 | }, 9 | "AllowedHosts": "*" 10 | } 11 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/wwwroot/app/presentation/dashboardController.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app.controllers') 3 | .controller('dashboardController', 4 | ['$log', 5 | function ($log) { 6 | 7 | var vm = this; 8 | }]); 9 | }()) -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/wwwroot/app/presentation/dashboardController.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app.controllers') 3 | .controller('dashboardController', 4 | ['$log', 5 | function ($log) { 6 | 7 | var vm = this; 8 | }]); 9 | }()) -------------------------------------------------------------------------------- /demos/asp-net-core/ITOps.Json/ITOps.Json.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/app/presentation/dashboardController.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app.controllers') 3 | .controller('dashboardController', 4 | ['$log', 5 | function ($log) { 6 | 7 | var vm = this; 8 | }]); 9 | }()) -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/app/presentation/dashboardController.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app.controllers') 3 | .controller('dashboardController', 4 | ['$log', 5 | function ($log) { 6 | 7 | var vm = this; 8 | }]); 9 | }()) -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.Data/Models/OrderItemPrice.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class OrderItemPrice 4 | { 5 | public int Id { get; set; } 6 | public int OrderId { get; set; } 7 | public int ProductId { get; set; } 8 | public double ItemPrice { get; set; } 9 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.Data/Models/OrderItemPrice.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class OrderItemPrice 4 | { 5 | public int Id { get; set; } 6 | public int OrderId { get; set; } 7 | public int ProductId { get; set; } 8 | public double ItemPrice { get; set; } 9 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/wwwroot/app/presentation/dashboardController.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app.controllers') 3 | .controller('dashboardController', 4 | ['$log', 5 | function ($log) { 6 | 7 | var vm = this; 8 | }]); 9 | }()) -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/wwwroot/app/presentation/dashboardController.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app.controllers') 3 | .controller('dashboardController', 4 | ['$log', 5 | function ($log) { 6 | 7 | var vm = this; 8 | }]); 9 | }()) -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/app/presentation/dashboardController.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app.controllers') 3 | .controller('dashboardController', 4 | ['$log', 5 | function ($log) { 6 | 7 | var vm = this; 8 | }]); 9 | }()) -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/app/presentation/dashboardController.js: -------------------------------------------------------------------------------- 1 | (function () { 2 | angular.module('app.controllers') 3 | .controller('dashboardController', 4 | ['$log', 5 | function ($log) { 6 | 7 | var vm = this; 8 | }]); 9 | }()) -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance/Messages/Commands/InitiatePaymentProcessCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Commands; 2 | 3 | public class InitiatePaymentProcessCommand 4 | { 5 | public double Amount { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance/Messages/Commands/InitiatePaymentProcessCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Commands; 2 | 3 | public class InitiatePaymentProcessCommand 4 | { 5 | public double Amount { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.Data/Models/OrderItemPrice.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class OrderItemPrice 4 | { 5 | public int Id { get; set; } 6 | public int OrderId { get; set; } 7 | public int ProductId { get; set; } 8 | public double ItemPrice { get; set; } 9 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Finance.Data/Models/OrderItemPrice.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class OrderItemPrice 4 | { 5 | public int Id { get; set; } 6 | public int OrderId { get; set; } 7 | public int ProductId { get; set; } 8 | public double ItemPrice { get; set; } 9 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Finance.Data/Models/OrderItemPrice.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class OrderItemPrice 4 | { 5 | public int Id { get; set; } 6 | public int OrderId { get; set; } 7 | public int ProductId { get; set; } 8 | public double ItemPrice { get; set; } 9 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance/Messages/Commands/InitiatePaymentProcessCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Commands; 2 | 3 | public class InitiatePaymentProcessCommand 4 | { 5 | public double Amount { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.Data/Models/OrderItemPrice.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class OrderItemPrice 4 | { 5 | public int Id { get; set; } 6 | public int OrderId { get; set; } 7 | public int ProductId { get; set; } 8 | public double ItemPrice { get; set; } 9 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance/Messages/Commands/InitiatePaymentProcessCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Commands; 2 | 3 | public class InitiatePaymentProcessCommand 4 | { 5 | public double Amount { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/shared-api-gateway/ITOps.Json/ITOps.Json.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.Data/Models/OrderItemPrice.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class OrderItemPrice 4 | { 5 | public int Id { get; set; } 6 | public int OrderId { get; set; } 7 | public int ProductId { get; set; } 8 | public double ItemPrice { get; set; } 9 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance/Messages/Commands/InitiatePaymentProcessCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Commands; 2 | 3 | public class InitiatePaymentProcessCommand 4 | { 5 | public double Amount { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance.Data/Models/OrderItemPrice.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Data.Models; 2 | 3 | public class OrderItemPrice 4 | { 5 | public int Id { get; set; } 6 | public int OrderId { get; set; } 7 | public int ProductId { get; set; } 8 | public double ItemPrice { get; set; } 9 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance/Messages/Commands/InitiatePaymentProcessCommand.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Finance.Messages.Commands; 2 | 3 | public class InitiatePaymentProcessCommand 4 | { 5 | public double Amount { get; set; } 6 | public int CustomerId { get; set; } 7 | public int OrderId { get; set; } 8 | } -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Shipping.Data/Divergent.Shipping.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.Data/Divergent.Finance.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.Data/Divergent.Finance.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps.Interfaces/IProvideShippingInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | 4 | namespace Divergent.ITOps.Interfaces 5 | { 6 | public interface IProvideShippingInfo 7 | { 8 | PackageInfo GetPackageInfo(IEnumerable productIds); 9 | } 10 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps.Interfaces/IProvideShippingInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | using System.Threading.Tasks; 3 | 4 | namespace Divergent.ITOps.Interfaces 5 | { 6 | public interface IProvideShippingInfo 7 | { 8 | PackageInfo GetPackageInfo(IEnumerable productIds); 9 | } 10 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.Data/Divergent.Finance.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/wwwroot/css/site.min.css: -------------------------------------------------------------------------------- 1 | body{padding-top:50px;padding-bottom:20px}.body-content{padding-left:15px;padding-right:15px}input,select,textarea{max-width:280px}.carousel-caption p{font-size:20px;line-height:1.4}.carousel-inner .item img[src$=".svg"]{width:100%}@media screen and (max-width:767px){.carousel-caption{display:none}} -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Finance.Data/Divergent.Finance.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Finance.Data/Divergent.Finance.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.ViewModelComposition.Events/OrdersLoaded.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.ViewModelComposition.Events 4 | { 5 | public class OrdersLoaded 6 | { 7 | public IDictionary OrderViewModelDictionary { get; set; } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.Messages/Commands/SubmitOrderCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Commands 4 | { 5 | public class SubmitOrderCommand 6 | { 7 | public int CustomerId { get; set; } 8 | 9 | public List Products { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.Messages/Commands/SubmitOrderCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Commands 4 | { 5 | public class SubmitOrderCommand 6 | { 7 | public int CustomerId { get; set; } 8 | 9 | public List Products { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.Data/Divergent.Finance.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.Data/Divergent.Finance.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance.Data/Divergent.Finance.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.Messages/Commands/SubmitOrderCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Commands 4 | { 5 | public class SubmitOrderCommand 6 | { 7 | public int CustomerId { get; set; } 8 | 9 | public List Products { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.Messages/Commands/SubmitOrderCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Commands 4 | { 5 | public class SubmitOrderCommand 6 | { 7 | public int CustomerId { get; set; } 8 | 9 | public List Products { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Customers.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Finance.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Finance.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.Messages/Commands/SubmitOrderCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Commands 4 | { 5 | public class SubmitOrderCommand 6 | { 7 | public int CustomerId { get; set; } 8 | 9 | public List Products { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.Messages/Commands/SubmitOrderCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Commands 4 | { 5 | public class SubmitOrderCommand 6 | { 7 | public int CustomerId { get; set; } 8 | 9 | public List Products { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | }, 8 | "applicationUrl": "http://localhost:4457" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | }, 8 | "applicationUrl": "http://localhost:4457" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Website": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:11493" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | }, 8 | "applicationUrl": "http://localhost:4457" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Customers.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | }, 8 | "applicationUrl": "http://localhost:4457" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | }, 8 | "applicationUrl": "http://localhost:4457" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | }, 8 | "applicationUrl": "http://localhost:4457" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | }, 8 | "applicationUrl": "http://localhost:4457" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers.API/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "LiteDbOptions": { 3 | "DatabaseLocation": "" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps.Interfaces/IRegisterServices.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | using Microsoft.Extensions.Hosting; 3 | 4 | namespace Divergent.ITOps.Interfaces 5 | { 6 | public interface IRegisterServices 7 | { 8 | void Register(HostBuilderContext context, IServiceCollection services); 9 | } 10 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps.Interfaces/IRegisterServices.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.Extensions.DependencyInjection; 2 | using Microsoft.Extensions.Hosting; 3 | 4 | namespace Divergent.ITOps.Interfaces 5 | { 6 | public interface IRegisterServices 7 | { 8 | void Register(HostBuilderContext context, IServiceCollection services); 9 | } 10 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | }, 8 | "applicationUrl": "http://localhost:4457" 9 | } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Frontend": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:42273/" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Frontend": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:42273/" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Frontend": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:42273/" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Frontend": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:42273/" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Frontend": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:42273/" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Frontend": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:42273/" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.CompositionGateway/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.CompositionGateway": { 4 | "commandName": "Project", 5 | "launchBrowser": false, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:4457" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Sales.ViewModelComposition.Events/Divergent.Sales.ViewModelComposition.Events.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Shipping.Data/Models/Shipment.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data.Models 2 | { 3 | public class Shipment 4 | { 5 | public int Id { get; set; } // required by EF 6 | 7 | public int OrderNumber { get; set; } 8 | 9 | public string Courier { get; set; } 10 | 11 | public string Status { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Frontend": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:42273/" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "Divergent.Frontend": { 4 | "commandName": "Project", 5 | "launchBrowser": true, 6 | "environmentVariables": { 7 | "ASPNETCORE_ENVIRONMENT": "Development" 8 | }, 9 | "applicationUrl": "http://localhost:42273/" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /targets/Targets.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | Exe 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.Messages/Events/OrderSubmittedEvent.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Events 4 | { 5 | public class OrderSubmittedEvent 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | 10 | public List Products { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.Messages/Events/OrderSubmittedEvent.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Events 4 | { 5 | public class OrderSubmittedEvent 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | 10 | public List Products { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Shipping.Data/Divergent.Shipping.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Sales.API/Divergent.Sales.API.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | Exe 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/Controllers/HomeController.cs: -------------------------------------------------------------------------------- 1 | using Microsoft.AspNetCore.Mvc; 2 | 3 | namespace Divergent.Website.Controllers 4 | { 5 | public class HomeController : Controller 6 | { 7 | [HttpGet("/")] 8 | public IActionResult Index() 9 | { 10 | return RedirectToRoute(new { controller = "Orders" }); 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps.Messages/Commands/ShipWithFedexCommand.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.ITOps.Messages.Commands 4 | { 5 | public class ShipWithFedexCommand 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | public List Products { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.Messages/Events/OrderSubmittedEvent.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Events 4 | { 5 | public class OrderSubmittedEvent 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | 10 | public List Products { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.Messages/Events/OrderSubmittedEvent.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Events 4 | { 5 | public class OrderSubmittedEvent 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | 10 | public List Products { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Shipping.Data/Divergent.Shipping.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website.sln.startup.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": 3, 3 | "ListAllProjects": false, 4 | "MultiProjectConfigurations": { 5 | "Demo": { 6 | "Projects": { 7 | "Divergent.Sales.API.Host": {}, 8 | "Divergent.Shipping.API.Host": {}, 9 | "Divergent.Website": {} 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.Messages/Events/OrderSubmittedEvent.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Sales.Messages.Events 4 | { 5 | public class OrderSubmittedEvent 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | 10 | public List Products { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Shipping.Data/WeightCalculator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class WeightCalculator 4 | { 5 | private const double WeightPerProduct = 0.6d; 6 | 7 | public static double CalculateWeight(int numberOfProducts) 8 | { 9 | return numberOfProducts * WeightPerProduct; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Shipping.API/Divergent.Shipping.API.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | Exe 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Customers.Data/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Customer 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | public string Street { get; set; } 8 | public string City { get; set; } 9 | public string PostalCode { get; set; } 10 | public string Country { get; set; } 11 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Shipping.Data/WeightCalculator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class WeightCalculator 4 | { 5 | private const double WeightPerProduct = 0.6d; 6 | 7 | public static double CalculateWeight(int numberOfProducts) 8 | { 9 | return numberOfProducts * WeightPerProduct; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps.Interfaces/CustomerInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.ITOps.Interfaces 2 | { 3 | public class CustomerInfo 4 | { 5 | public string Name { get; set; } 6 | public string Street { get; set; } 7 | public string City { get; set; } 8 | public string PostalCode { get; set; } 9 | public string Country { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps.Interfaces/CustomerInfo.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.ITOps.Interfaces 2 | { 3 | public class CustomerInfo 4 | { 5 | public string Name { get; set; } 6 | public string Street { get; set; } 7 | public string City { get; set; } 8 | public string PostalCode { get; set; } 9 | public string Country { get; set; } 10 | } 11 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Customers.Data/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Customer 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | public string Street { get; set; } 8 | public string City { get; set; } 9 | public string PostalCode { get; set; } 10 | public string Country { get; set; } 11 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.Data/Divergent.Sales.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Shipping.Data/WeightCalculator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class WeightCalculator 4 | { 5 | private const double WeightPerProduct = 0.6d; 6 | 7 | public static double CalculateWeight(int numberOfProducts) 8 | { 9 | return numberOfProducts * WeightPerProduct; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Shipping.Data/WeightCalculator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class WeightCalculator 4 | { 5 | private const double WeightPerProduct = 0.6d; 6 | 7 | public static double CalculateWeight(int numberOfProducts) 8 | { 9 | return numberOfProducts * WeightPerProduct; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Shipping.Data/WeightCalculator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class WeightCalculator 4 | { 5 | private const double WeightPerProduct = 0.6d; 6 | 7 | public static double CalculateWeight(int numberOfProducts) 8 | { 9 | return numberOfProducts * WeightPerProduct; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers.Data/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Customers.Data.Models; 2 | 3 | public class Customer 4 | { 5 | public int Id { get; set; } 6 | public string Name { get; set; } 7 | public string Street { get; set; } 8 | public string City { get; set; } 9 | public string PostalCode { get; set; } 10 | public string Country { get; set; } 11 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Shipping.Data/WeightCalculator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class WeightCalculator 4 | { 5 | private const double WeightPerProduct = 0.6d; 6 | 7 | public static double CalculateWeight(int numberOfProducts) 8 | { 9 | return numberOfProducts * WeightPerProduct; 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.CompositionGateway.sln.startup.json: -------------------------------------------------------------------------------- 1 | { 2 | "Version": 3, 3 | "ListAllProjects": false, 4 | "MultiProjectConfigurations": { 5 | "Demo": { 6 | "Projects": { 7 | "Divergent.Sales.API.Host": {}, 8 | "Divergent.Shipping.API.Host": {}, 9 | "Divergent.CompositionGateway": {} 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Frontend; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Frontend; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Frontend; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Frontend; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Customers.API; 2 | 3 | var host = Host.CreateDefaultBuilder() 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Finance.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Finance.API; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Customers.API; 2 | 3 | var host = Host.CreateDefaultBuilder() 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Finance.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Finance.API; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Frontend; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Frontend; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Customers.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Customers.API; 2 | 3 | var host = Host.CreateDefaultBuilder() 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Finance.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Finance.API; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Customers.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Customers.API; 2 | 3 | var host = Host.CreateDefaultBuilder() 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Finance.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Finance.API; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Frontend; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Frontend; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.CompositionGateway/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.CompositionGateway; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.CompositionGateway/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.CompositionGateway; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Customers.API; 2 | 3 | var host = Host.CreateDefaultBuilder() 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Finance.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Finance.API; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Customers.API; 2 | 3 | var host = Host.CreateDefaultBuilder() 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Finance.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Finance.API; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Customers.API; 2 | 3 | var host = Host.CreateDefaultBuilder() 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Finance.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Finance.API; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Customers.API; 2 | 3 | var host = Host.CreateDefaultBuilder() 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Finance.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Finance.API; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.CompositionGateway/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.CompositionGateway; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Shipping/Sagas/ShippingSagaData.cs: -------------------------------------------------------------------------------- 1 | using NServiceBus; 2 | 3 | namespace Divergent.Shipping.Sagas; 4 | 5 | public class ShippingSagaData : ContainSagaData 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | public bool IsOrderSubmitted { get; set; } 10 | public bool IsPaymentProcessed { get; set; } 11 | public List Products { get; set; } 12 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.CompositionGateway/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.CompositionGateway; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.CompositionGateway/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.CompositionGateway; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers.Data/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Customers.Data.Models; 4 | 5 | public class Customer 6 | { 7 | public int Id { get; set; } 8 | public string Name { get; set; } 9 | public string Street { get; set; } 10 | public string City { get; set; } 11 | public string PostalCode { get; set; } 12 | public string Country { get; set; } 13 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Sales.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Divergent.Sales.Data.Models; 5 | 6 | public class Order 7 | { 8 | public int Id { get; set; } 9 | 10 | public int CustomerId { get; set; } 11 | 12 | public DateTime DateTimeUtc { get; set; } 13 | 14 | public string State { get; set; } 15 | 16 | public ICollection Items { get; set; } 17 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers.Data/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Customers.Data.Models; 4 | 5 | public class Customer 6 | { 7 | public int Id { get; set; } 8 | public string Name { get; set; } 9 | public string Street { get; set; } 10 | public string City { get; set; } 11 | public string PostalCode { get; set; } 12 | public string Country { get; set; } 13 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Sales.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Divergent.Sales.Data.Models; 5 | 6 | public class Order 7 | { 8 | public int Id { get; set; } 9 | 10 | public int CustomerId { get; set; } 11 | 12 | public DateTime DateTimeUtc { get; set; } 13 | 14 | public string State { get; set; } 15 | 16 | public ICollection Items { get; set; } 17 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.CompositionGateway/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.CompositionGateway; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Sales.API; 2 | using NServiceBus; 3 | 4 | var host = Host.CreateDefaultBuilder(args) 5 | .ConfigureWebHostDefaults(webBuilder => 6 | { 7 | webBuilder.UseStartup(); 8 | }).Build(); 9 | 10 | var hostEnvironment = host.Services.GetRequiredService(); 11 | 12 | Console.Title = hostEnvironment.ApplicationName; 13 | 14 | host.Run(); -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Sales.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Divergent.Sales.Data.Models; 5 | 6 | public class Order 7 | { 8 | public int Id { get; set; } 9 | 10 | public int CustomerId { get; set; } 11 | 12 | public DateTime DateTimeUtc { get; set; } 13 | 14 | public string State { get; set; } 15 | 16 | public ICollection Items { get; set; } 17 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.API/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.Sales.API; 2 | using NServiceBus; 3 | 4 | var host = Host.CreateDefaultBuilder(args) 5 | .ConfigureWebHostDefaults(webBuilder => 6 | { 7 | webBuilder.UseStartup(); 8 | }).Build(); 9 | 10 | var hostEnvironment = host.Services.GetRequiredService(); 11 | 12 | Console.Title = hostEnvironment.ApplicationName; 13 | 14 | host.Run(); -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.CompositionGateway/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.CompositionGateway; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.CompositionGateway/Program.cs: -------------------------------------------------------------------------------- 1 | using Divergent.CompositionGateway; 2 | 3 | var host = Host.CreateDefaultBuilder(args) 4 | .ConfigureWebHostDefaults(webBuilder => 5 | { 6 | webBuilder.UseStartup(); 7 | }).Build(); 8 | 9 | var hostEnvironment = host.Services.GetRequiredService(); 10 | 11 | Console.Title = hostEnvironment.ApplicationName; 12 | 13 | host.Run(); -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Customers.Data/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Customers.Data.Models; 4 | 5 | public class Customer 6 | { 7 | public int Id { get; set; } 8 | public string Name { get; set; } 9 | public string Street { get; set; } 10 | public string City { get; set; } 11 | public string PostalCode { get; set; } 12 | public string Country { get; set; } 13 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Sales.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Divergent.Sales.Data.Models; 5 | 6 | public class Order 7 | { 8 | public int Id { get; set; } 9 | 10 | public int CustomerId { get; set; } 11 | 12 | public DateTime DateTimeUtc { get; set; } 13 | 14 | public string State { get; set; } 15 | 16 | public ICollection Items { get; set; } 17 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Customers.Data/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Customers.Data.Models; 4 | 5 | public class Customer 6 | { 7 | public int Id { get; set; } 8 | public string Name { get; set; } 9 | public string Street { get; set; } 10 | public string City { get; set; } 11 | public string PostalCode { get; set; } 12 | public string Country { get; set; } 13 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Sales.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Divergent.Sales.Data.Models; 5 | 6 | public class Order 7 | { 8 | public int Id { get; set; } 9 | 10 | public int CustomerId { get; set; } 11 | 12 | public DateTime DateTimeUtc { get; set; } 13 | 14 | public string State { get; set; } 15 | 16 | public ICollection Items { get; set; } 17 | } -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Sales.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Divergent.Sales.Data.Models; 5 | 6 | public class Order 7 | { 8 | public int Id { get; set; } 9 | 10 | public int CustomerId { get; set; } 11 | 12 | public DateTime DateTimeUtc { get; set; } 13 | 14 | public string State { get; set; } 15 | 16 | public ICollection Items { get; set; } 17 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers.Data/Models/Customer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections.Generic; 2 | 3 | namespace Divergent.Customers.Data.Models; 4 | 5 | public class Customer 6 | { 7 | public int Id { get; set; } 8 | public string Name { get; set; } 9 | public string Street { get; set; } 10 | public string City { get; set; } 11 | public string PostalCode { get; set; } 12 | public string Country { get; set; } 13 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Sales.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Divergent.Sales.Data.Models; 5 | 6 | public class Order 7 | { 8 | public int Id { get; set; } 9 | 10 | public int CustomerId { get; set; } 11 | 12 | public DateTime DateTimeUtc { get; set; } 13 | 14 | public string State { get; set; } 15 | 16 | public ICollection Items { get; set; } 17 | } -------------------------------------------------------------------------------- /demos/asp-net-core/dsemo-requests-list.rest: -------------------------------------------------------------------------------- 1 | ### get order details from Sales API 2 | http://localhost:20295/api/orders/1 3 | 4 | ### get order details from Shipping API 5 | http://localhost:20296/api/shipments/order/1 6 | 7 | ### Order #1, composed 8 | http://localhost:4457/orders/details/1 9 | 10 | ### Orders list, Sales only" 11 | http://localhost:20295/api/orders?pageSize=10&pageIndex=0 12 | 13 | ### Orders list, composed 14 | http://localhost:4457/orders -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Sales.Data/Models/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | namespace Divergent.Sales.Data.Models; 5 | 6 | public class Order 7 | { 8 | public int Id { get; set; } 9 | 10 | public int CustomerId { get; set; } 11 | 12 | public DateTime DateTimeUtc { get; set; } 13 | 14 | public string State { get; set; } 15 | 16 | public ICollection Items { get; set; } 17 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/externalsystems/MastercardPaymentProvider/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/launchsettings.json", 3 | "profiles": { 4 | "PaymentProviders": { 5 | "commandName": "Project", 6 | "dotnetRunMessages": true, 7 | "applicationUrl": "http://localhost:12345", 8 | "environmentVariables": { 9 | "ASPNETCORE_ENVIRONMENT": "Development" 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/externalsystems/MastercardPaymentProvider/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/launchsettings.json", 3 | "profiles": { 4 | "PaymentProviders": { 5 | "commandName": "Project", 6 | "dotnetRunMessages": true, 7 | "applicationUrl": "http://localhost:12345", 8 | "environmentVariables": { 9 | "ASPNETCORE_ENVIRONMENT": "Development" 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Shipping/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DistributedTracing-Shipping;Trusted_Connection=True;MultipleActiveResultSets=true" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/04-integration/after/externalsystems/MastercardPaymentProvider/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/launchsettings.json", 3 | "profiles": { 4 | "PaymentProviders": { 5 | "commandName": "Project", 6 | "dotnetRunMessages": true, 7 | "applicationUrl": "http://localhost:12345", 8 | "environmentVariables": { 9 | "ASPNETCORE_ENVIRONMENT": "Development" 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/externalsystems/MastercardPaymentProvider/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/launchsettings.json", 3 | "profiles": { 4 | "PaymentProviders": { 5 | "commandName": "Project", 6 | "dotnetRunMessages": true, 7 | "applicationUrl": "http://localhost:12345", 8 | "environmentVariables": { 9 | "ASPNETCORE_ENVIRONMENT": "Development" 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /demos/asp-net-core/ITOps.Data/ITOps.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | enable 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/externalsystems/MastercardPaymentProvider/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/launchsettings.json", 3 | "profiles": { 4 | "PaymentProviders": { 5 | "commandName": "Project", 6 | "dotnetRunMessages": true, 7 | "applicationUrl": "http://localhost:12345", 8 | "environmentVariables": { 9 | "ASPNETCORE_ENVIRONMENT": "Development" 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/externalsystems/MastercardPaymentProvider/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://json.schemastore.org/launchsettings.json", 3 | "profiles": { 4 | "PaymentProviders": { 5 | "commandName": "Project", 6 | "dotnetRunMessages": true, 7 | "applicationUrl": "http://localhost:12345", 8 | "environmentVariables": { 9 | "ASPNETCORE_ENVIRONMENT": "Development" 10 | } 11 | } 12 | } 13 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Shipping.Data/VolumeEstimator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class VolumeEstimator 4 | { 5 | private const double Height = 0.1d; 6 | private const double Width = 0.1d; 7 | private const double Depth = 0.1d; 8 | 9 | public static double Calculate(int numberOfProducts) 10 | { 11 | return Height*Width*Depth*numberOfProducts; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Shipping.Data/VolumeEstimator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class VolumeEstimator 4 | { 5 | private const double Height = 0.1d; 6 | private const double Width = 0.1d; 7 | private const double Depth = 0.1d; 8 | 9 | public static double Calculate(int numberOfProducts) 10 | { 11 | return Height*Width*Depth*numberOfProducts; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Shipping/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DistributedTracing-Shipping;Trusted_Connection=True;MultipleActiveResultSets=true" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Shipping/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=DistributedTracing-Shipping;Trusted_Connection=True;MultipleActiveResultSets=true" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Information", 8 | "Microsoft": "Warning", 9 | "Microsoft.Hosting.Lifetime": "Information" 10 | } 11 | }, 12 | "AllowedHosts": "*" 13 | } 14 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/wwwroot/assets/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 50px; 4 | } 5 | /* Set padding to keep content from hitting the edges */ 6 | .body-content { 7 | padding-left: 15px; 8 | padding-right: 15px; 9 | } 10 | 11 | .body-content > section { 12 | padding-top: 15px; 13 | } 14 | 15 | .button { 16 | cursor: pointer; 17 | } 18 | 19 | .pending-order { 20 | font-style:italic; 21 | color: gray; 22 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/wwwroot/assets/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 50px; 4 | } 5 | /* Set padding to keep content from hitting the edges */ 6 | .body-content { 7 | padding-left: 15px; 8 | padding-right: 15px; 9 | } 10 | 11 | .body-content > section { 12 | padding-top: 15px; 13 | } 14 | 15 | .button { 16 | cursor: pointer; 17 | } 18 | 19 | .pending-order { 20 | font-style:italic; 21 | color: gray; 22 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Shipping.Data/VolumeEstimator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class VolumeEstimator 4 | { 5 | private const double Height = 0.1d; 6 | private const double Width = 0.1d; 7 | private const double Depth = 0.1d; 8 | 9 | public static double Calculate(int numberOfProducts) 10 | { 11 | return Height*Width*Depth*numberOfProducts; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Shipping.Data/VolumeEstimator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class VolumeEstimator 4 | { 5 | private const double Height = 0.1d; 6 | private const double Width = 0.1d; 7 | private const double Depth = 0.1d; 8 | 9 | public static double Calculate(int numberOfProducts) 10 | { 11 | return Height*Width*Depth*numberOfProducts; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/wwwroot/assets/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 50px; 4 | } 5 | /* Set padding to keep content from hitting the edges */ 6 | .body-content { 7 | padding-left: 15px; 8 | padding-right: 15px; 9 | } 10 | 11 | .body-content > section { 12 | padding-top: 15px; 13 | } 14 | 15 | .button { 16 | cursor: pointer; 17 | } 18 | 19 | .pending-order { 20 | font-style:italic; 21 | color: gray; 22 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/wwwroot/assets/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 50px; 4 | } 5 | /* Set padding to keep content from hitting the edges */ 6 | .body-content { 7 | padding-left: 15px; 8 | padding-right: 15px; 9 | } 10 | 11 | .body-content > section { 12 | padding-top: 15px; 13 | } 14 | 15 | .button { 16 | cursor: pointer; 17 | } 18 | 19 | .pending-order { 20 | font-style:italic; 21 | color: gray; 22 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Shipping.Data/VolumeEstimator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class VolumeEstimator 4 | { 5 | private const double Height = 0.1d; 6 | private const double Width = 0.1d; 7 | private const double Depth = 0.1d; 8 | 9 | public static double Calculate(int numberOfProducts) 10 | { 11 | return Height*Width*Depth*numberOfProducts; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/wwwroot/assets/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 50px; 4 | } 5 | /* Set padding to keep content from hitting the edges */ 6 | .body-content { 7 | padding-left: 15px; 8 | padding-right: 15px; 9 | } 10 | 11 | .body-content > section { 12 | padding-top: 15px; 13 | } 14 | 15 | .button { 16 | cursor: pointer; 17 | } 18 | 19 | .pending-order { 20 | font-style:italic; 21 | color: gray; 22 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/wwwroot/assets/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 50px; 4 | } 5 | /* Set padding to keep content from hitting the edges */ 6 | .body-content { 7 | padding-left: 15px; 8 | padding-right: 15px; 9 | } 10 | 11 | .body-content > section { 12 | padding-top: 15px; 13 | } 14 | 15 | .button { 16 | cursor: pointer; 17 | } 18 | 19 | .pending-order { 20 | font-style:italic; 21 | color: gray; 22 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/wwwroot/assets/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 50px; 4 | } 5 | /* Set padding to keep content from hitting the edges */ 6 | .body-content { 7 | padding-left: 15px; 8 | padding-right: 15px; 9 | } 10 | 11 | .body-content > section { 12 | padding-top: 15px; 13 | } 14 | 15 | .button { 16 | cursor: pointer; 17 | } 18 | 19 | .pending-order { 20 | font-style:italic; 21 | color: gray; 22 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/wwwroot/assets/site.css: -------------------------------------------------------------------------------- 1 | body { 2 | padding-top: 50px; 3 | padding-bottom: 50px; 4 | } 5 | /* Set padding to keep content from hitting the edges */ 6 | .body-content { 7 | padding-left: 15px; 8 | padding-right: 15px; 9 | } 10 | 11 | .body-content > section { 12 | padding-top: 15px; 13 | } 14 | 15 | .button { 16 | cursor: pointer; 17 | } 18 | 19 | .pending-order { 20 | font-style:italic; 21 | color: gray; 22 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Shipping.Data/VolumeEstimator.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Shipping.Data 2 | { 3 | public static class VolumeEstimator 4 | { 5 | private const double Height = 0.1d; 6 | private const double Width = 0.1d; 7 | private const double Depth = 0.1d; 8 | 9 | public static double Calculate(int numberOfProducts) 10 | { 11 | return Height*Width*Depth*numberOfProducts; 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Sales.ViewModelComposition/Divergent.Sales.ViewModelComposition.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.ITOps.Interfaces/Divergent.ITOps.Interfaces.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Shipping.ViewModelComposition/Divergent.Shipping.ViewModelComposition.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.ITOps.Interfaces/Divergent.ITOps.Interfaces.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netstandard2.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Frontend/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Frontend; 2 | 3 | public class Startup 4 | { 5 | public void ConfigureServices(IServiceCollection services) 6 | { 7 | } 8 | 9 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 10 | { 11 | if (env.IsDevelopment()) 12 | { 13 | app.UseDeveloperExceptionPage(); 14 | } 15 | 16 | app.UseDefaultFiles(); 17 | app.UseStaticFiles(); 18 | } 19 | } -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Frontend/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Frontend; 2 | 3 | public class Startup 4 | { 5 | public void ConfigureServices(IServiceCollection services) 6 | { 7 | } 8 | 9 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 10 | { 11 | if (env.IsDevelopment()) 12 | { 13 | app.UseDeveloperExceptionPage(); 14 | } 15 | 16 | app.UseDefaultFiles(); 17 | app.UseStaticFiles(); 18 | } 19 | } -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.Website/Divergent.Website.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Frontend/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Frontend; 2 | 3 | public class Startup 4 | { 5 | public void ConfigureServices(IServiceCollection services) 6 | { 7 | } 8 | 9 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 10 | { 11 | if (env.IsDevelopment()) 12 | { 13 | app.UseDeveloperExceptionPage(); 14 | } 15 | 16 | app.UseDefaultFiles(); 17 | app.UseStaticFiles(); 18 | } 19 | } -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Frontend/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Frontend; 2 | 3 | public class Startup 4 | { 5 | public void ConfigureServices(IServiceCollection services) 6 | { 7 | } 8 | 9 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 10 | { 11 | if (env.IsDevelopment()) 12 | { 13 | app.UseDeveloperExceptionPage(); 14 | } 15 | 16 | app.UseDefaultFiles(); 17 | app.UseStaticFiles(); 18 | } 19 | } -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Frontend/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Frontend; 2 | 3 | public class Startup 4 | { 5 | public void ConfigureServices(IServiceCollection services) 6 | { 7 | } 8 | 9 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 10 | { 11 | if (env.IsDevelopment()) 12 | { 13 | app.UseDeveloperExceptionPage(); 14 | } 15 | 16 | app.UseDefaultFiles(); 17 | app.UseStaticFiles(); 18 | } 19 | } -------------------------------------------------------------------------------- /exercises/04-integration/before/Divergent.Frontend/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Frontend; 2 | 3 | public class Startup 4 | { 5 | public void ConfigureServices(IServiceCollection services) 6 | { 7 | } 8 | 9 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 10 | { 11 | if (env.IsDevelopment()) 12 | { 13 | app.UseDeveloperExceptionPage(); 14 | } 15 | 16 | app.UseDefaultFiles(); 17 | app.UseStaticFiles(); 18 | } 19 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Frontend/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Frontend; 2 | 3 | public class Startup 4 | { 5 | public void ConfigureServices(IServiceCollection services) 6 | { 7 | } 8 | 9 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 10 | { 11 | if (env.IsDevelopment()) 12 | { 13 | app.UseDeveloperExceptionPage(); 14 | } 15 | 16 | app.UseDefaultFiles(); 17 | app.UseStaticFiles(); 18 | } 19 | } -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Frontend/Startup.cs: -------------------------------------------------------------------------------- 1 | namespace Divergent.Frontend; 2 | 3 | public class Startup 4 | { 5 | public void ConfigureServices(IServiceCollection services) 6 | { 7 | } 8 | 9 | public void Configure(IApplicationBuilder app, IWebHostEnvironment env) 10 | { 11 | if (env.IsDevelopment()) 12 | { 13 | app.UseDeveloperExceptionPage(); 14 | } 15 | 16 | app.UseDefaultFiles(); 17 | app.UseStaticFiles(); 18 | } 19 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers.Data/Divergent.Customers.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers.Data/Divergent.Customers.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Customers.Data/Divergent.Customers.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/before/Divergent.Customers.Data/Divergent.Customers.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/after/Divergent.Customers.Data/Divergent.Customers.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /exercises/02-publish-subscribe/before/Divergent.Customers.Data/Divergent.Customers.Data.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /exercises/04-integration/after/Divergent.Shipping/Sagas/ShippingSagaData.cs: -------------------------------------------------------------------------------- 1 | using NServiceBus; 2 | 3 | namespace Divergent.Shipping.Sagas; 4 | 5 | public class ShippingSagaData : ContainSagaData 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | public bool IsOrderSubmitted { get; set; } 10 | public bool IsPaymentProcessed { get; set; } 11 | public List Products { get; set; } 12 | 13 | public class Product 14 | { 15 | public int Identifier { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Shipping/Sagas/ShippingSagaData.cs: -------------------------------------------------------------------------------- 1 | using NServiceBus; 2 | 3 | namespace Divergent.Shipping.Sagas; 4 | 5 | public class ShippingSagaData : ContainSagaData 6 | { 7 | public int OrderId { get; set; } 8 | public int CustomerId { get; set; } 9 | public bool IsOrderSubmitted { get; set; } 10 | public bool IsPaymentProcessed { get; set; } 11 | public ICollection Products { get; set; } 12 | 13 | public class Product 14 | { 15 | public int Identifier { get; set; } 16 | } 17 | } -------------------------------------------------------------------------------- /exercises/03-sagas/after/Divergent.Customers.API/Divergent.Customers.API.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /exercises/03-sagas/before/Divergent.Customers.API/Divergent.Customers.API.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /exercises/shared-api-gateway/ITOps.SharedConfiguration/ITOps.SharedConfiguration.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | ITOps.EndpointConfig 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /demos/asp-net-core/Divergent.CompositionGateway/Divergent.CompositionGateway.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | Exe 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /exercises/01-composite-ui/after/Divergent.Customers.API/Divergent.Customers.API.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | net8.0 5 | enable 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | --------------------------------------------------------------------------------