├── .gitattributes ├── .gitignore ├── AccountManagement ├── CodeProject.AccountManagement.BusinessRules.sln ├── CodeProject.AccountManagement.BusinessRules │ ├── AccountBusinessRules.cs │ └── CodeProject.AccountManagement.BusinessRules.csproj ├── CodeProject.AccountManagement.BusinessServices.sln ├── CodeProject.AccountManagement.BusinessServices │ ├── AccountManagementBusinessService.cs │ └── CodeProject.AccountManagement.BusinessServices.csproj ├── CodeProject.AccountManagement.Data.EntityFramework.sln ├── CodeProject.AccountManagement.Data.EntityFramework │ ├── AccountManagementDataService.cs │ ├── AccountManagementDatabase.cs │ ├── CodeProject.AccountManagement.Data.EntityFramework.csproj │ ├── EntityFrameworkRepository.cs │ └── Migrations │ │ ├── 20181118152715_InitialDatabase.Designer.cs │ │ ├── 20181118152715_InitialDatabase.cs │ │ └── AccountManagementDatabaseModelSnapshot.cs ├── CodeProject.AccountManagement.Data.Models.sln ├── CodeProject.AccountManagement.Data.Models │ ├── CodeProject.AccountManagement.Data.Models.csproj │ ├── CodeProject.AccountManagement.Data.Models.sln │ ├── Entities │ │ ├── Account.cs │ │ ├── Application.cs │ │ ├── User.cs │ │ └── UserType.cs │ └── Transformations │ │ └── AccountDataTransformation.cs ├── CodeProject.AccountManagement.Interfaces.sln ├── CodeProject.AccountManagement.Interfaces │ ├── CodeProject.AccountManagement.Interfaces.csproj │ ├── IAccountManagementBusinessService.cs │ └── IAccountManagementDataService.cs ├── CodeProject.AccountManagement.WebApi.sln └── CodeProject.AccountManagement.WebApi │ ├── ActionFilters │ └── SecurityActionFilter.cs │ ├── CodeProject.AccountManagement.WebApi.csproj │ ├── CodeProject.AccountManagement.WebApi.csproj.user │ ├── Controllers │ ├── AuthorizationController.cs │ └── ValuesController.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── Databases ├── MS_AccountManagement_DEV.mdf ├── MS_AccountManagement_DEV_log.ldf ├── MS_InventoryManagement_DEV.mdf ├── MS_InventoryManagement_DEV_log.ldf ├── MS_LoggingManagement_DEV.mdf ├── MS_LoggingManagement_DEV_log.ldf ├── MS_PurchaseOrderManagement_DEV.mdf ├── MS_PurchaseOrderManagement_DEV_log.ldf ├── MS_SalesOrderManagement_DEV.mdf └── MS_SalesOrderManagement_DEV_log.ldf ├── InventoryManagement ├── .vs │ └── CodeProject.InventoryManagement.WebApi │ │ ├── DesignTimeBuild │ │ └── .dtbcache.v2 │ │ └── v16 │ │ └── .suo ├── CodeProject.InventoryManagement.BusinessRules.sln ├── CodeProject.InventoryManagement.BusinessRules │ ├── CodeProject.InventoryManagement.BusinessRules.csproj │ └── ProductBusinessRules.cs ├── CodeProject.InventoryManagement.BusinessServices.sln ├── CodeProject.InventoryManagement.BusinessServices │ ├── .vs │ │ └── CodeProject.InventoryManagement.BusinessServices │ │ │ ├── DesignTimeBuild │ │ │ └── .dtbcache.v2 │ │ │ └── v16 │ │ │ └── .suo │ ├── CodeProject.InventoryManagement.BusinessServices.csproj │ └── InventoryManagementBusinessService.cs ├── CodeProject.InventoryManagement.Data.EntityFramework.sln ├── CodeProject.InventoryManagement.Data.EntityFramework │ ├── CodeProject.InventoryManagement.Data.EntityFramework.csproj │ ├── EntityFrameworkRepository.cs │ ├── InventoryManagementDataService.cs │ ├── InventoryManagementDatabase.cs │ └── Migrations │ │ ├── 20181118152021_InitialDatabase.Designer.cs │ │ ├── 20181118152021_InitialDatabase.cs │ │ └── InventoryManagementDatabaseModelSnapshot.cs ├── CodeProject.InventoryManagement.Data.Models.sln ├── CodeProject.InventoryManagement.Data.Models │ ├── CodeProject.InventoryManagement.Data.Models.csproj │ ├── Entities │ │ ├── InventoryTransaction.cs │ │ ├── Product.cs │ │ ├── PurchaseOrder.cs │ │ ├── PurchaseOrderDetail.cs │ │ ├── PurchaseOrderStatus.cs │ │ ├── SalesOrder.cs │ │ ├── SalesOrderDetail.cs │ │ ├── SalesOrderStatus.cs │ │ ├── TransactionQueueInbound.cs │ │ ├── TransactionQueueInboundHistory.cs │ │ ├── TransactionQueueOutbound.cs │ │ ├── TransactionQueueOutboundHistory.cs │ │ └── TransactionQueueSemaphore.cs │ └── Transformations │ │ ├── ProductDataTransformation.cs │ │ ├── ProductInquiryDataTransformation.cs │ │ ├── PurchaseOrderDataTransformation.cs │ │ ├── PurchaseOrderDetailDataTransformation.cs │ │ ├── PurchaseOrderInquiryDataTransformation.cs │ │ ├── SalesOrderDataTransformation.cs │ │ ├── SalesOrderDetailDataTransformation.cs │ │ └── SalesOrderInquiryDataTransformation.cs ├── CodeProject.InventoryManagement.Interfaces.sln ├── CodeProject.InventoryManagement.Interfaces │ ├── CodeProject.InventoryManagement.Interfaces.csproj │ ├── IInventoryManagementBusinessService.cs │ └── IInventoryManagementDataService.cs ├── CodeProject.InventoryManagement.MessageQueueing.sln ├── CodeProject.InventoryManagement.MessageQueueing │ ├── CodeProject.InventoryManagement.MessageQueueing.csproj │ ├── CodeProject.InventoryManagement.MessageQueueing.sln │ ├── MessageProcessing.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── appsettings.Development.json │ └── appsettings.json ├── CodeProject.InventoryManagement.WebApi.sln └── CodeProject.InventoryManagement.WebApi │ ├── ActionFilters │ └── SecurityActionFilter.cs │ ├── CodeProject.InventoryManagement.WebApi.csproj │ ├── CodeProject.InventoryManagement.WebApi.csproj.user │ ├── Controllers │ ├── HttpFileCollection.cs │ ├── HttpPostedFile.cs │ ├── ProductController.cs │ ├── PurchaseOrderController.cs │ ├── SalesOrderController.cs │ └── ValuesController.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── SignalRHub │ └── MessageQueueHub.cs │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── LoggingManagement ├── CodeProject.LoggingManagement.Data.EntityFramework.sln ├── CodeProject.LoggingManagement.Data.EntityFramework │ ├── CodeProject.LoggingManagement.Data.EntityFramework.csproj │ ├── EntityFrameworkRepository.cs │ ├── LoggingManagementDataService.cs │ ├── LoggingManagementDatabase.cs │ └── Migrations │ │ ├── 20181118151403_InitialDatabase.Designer.cs │ │ ├── 20181118151403_InitialDatabase.cs │ │ └── LoggingManagementDatabaseModelSnapshot.cs ├── CodeProject.LoggingManagement.Data.Models.sln ├── CodeProject.LoggingManagement.Data.Models │ ├── CodeProject.LoggingManagement.Data.Models.csproj │ └── Entities │ │ ├── AcknowledgementsQueue.cs │ │ ├── MessagesReceived.cs │ │ ├── MessagesSent.cs │ │ └── TransactionQueueSemaphore.cs ├── CodeProject.LoggingManagement.Interfaces.sln ├── CodeProject.LoggingManagement.Interfaces │ ├── CodeProject.LoggingManagement.Interfaces.csproj │ └── ILoggingManagementDataService.cs ├── CodeProject.LoggingManagement.MessageQueueing.sln └── CodeProject.LoggingManagement.MessageQueueing │ ├── CodeProject.LoggingManagement.MessageQueueing.csproj │ ├── CodeProject.LoggingManagement.MessageQueueing.csproj.user │ ├── MessageProcessing.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── appsettings.Development.json │ └── appsettings.json ├── MessageQueueing ├── CodeProject.MessageQueueing.sln └── CodeProject.MessageQueueing │ ├── CodeProject.MessageQueueing.csproj │ ├── CodeProject.MessageQueueing.csproj.user │ ├── MessageQueueConfiguration.cs │ ├── MessageQueueConnection.cs │ ├── MessageQueueing.cs │ ├── OldSendMessages.cs │ ├── ProcessMessages.cs │ ├── ReceiveMessages.cs │ └── SendMessages.cs ├── Portal ├── CodeProject.Portal.sln └── CodeProject.Portal │ ├── .editorconfig │ ├── .gitignore │ ├── .vscode │ └── launch.json │ ├── CodeProject.Portal.csproj │ ├── Pages │ ├── About.cshtml │ ├── About.cshtml.cs │ ├── Contact.cshtml │ ├── Contact.cshtml.cs │ ├── Error.cshtml │ ├── Error.cshtml.cs │ ├── Index.cshtml │ ├── Index.cshtml.cs │ ├── Privacy.cshtml │ ├── Privacy.cshtml.cs │ ├── Shared │ │ ├── _CookieConsentPartial.cshtml │ │ ├── _Layout.cshtml │ │ └── _ValidationScriptsPartial.cshtml │ ├── _ViewImports.cshtml │ └── _ViewStart.cshtml │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── README.md │ ├── Startup.cs │ ├── angular.json │ ├── appsettings.Development.json │ ├── appsettings.json │ ├── e2e │ ├── protractor.conf.js │ ├── src │ │ ├── app.e2e-spec.ts │ │ └── app.po.ts │ └── tsconfig.e2e.json │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── app │ │ ├── account-management │ │ │ ├── account-management.module.ts │ │ │ ├── account-management.routing.ts │ │ │ ├── login │ │ │ │ ├── login.component.css │ │ │ │ ├── login.component.html │ │ │ │ ├── login.component.spec.ts │ │ │ │ └── login.component.ts │ │ │ ├── register │ │ │ │ ├── register.component.css │ │ │ │ ├── register.component.html │ │ │ │ ├── register.component.spec.ts │ │ │ │ └── register.component.ts │ │ │ └── view-models │ │ │ │ └── user-response.viewmodel.ts │ │ ├── app.component.css │ │ ├── app.component.html │ │ ├── app.component.spec.ts │ │ ├── app.component.ts │ │ ├── app.module.ts │ │ ├── application-routing.ts │ │ ├── home-directory │ │ │ ├── about │ │ │ │ ├── about.component.css │ │ │ │ ├── about.component.html │ │ │ │ ├── about.component.spec.ts │ │ │ │ └── about.component.ts │ │ │ ├── contact │ │ │ │ ├── contact.component.css │ │ │ │ ├── contact.component.html │ │ │ │ ├── contact.component.spec.ts │ │ │ │ └── contact.component.ts │ │ │ └── home │ │ │ │ ├── home.component.css │ │ │ │ ├── home.component.html │ │ │ │ ├── home.component.spec.ts │ │ │ │ └── home.component.ts │ │ ├── inventory-management │ │ │ ├── inventory-management-nav-bar │ │ │ │ ├── inventory-management-nav-bar.component.css │ │ │ │ ├── inventory-management-nav-bar.component.html │ │ │ │ ├── inventory-management-nav-bar.component.spec.ts │ │ │ │ └── inventory-management-nav-bar.component.ts │ │ │ ├── inventory-management.module.ts │ │ │ ├── inventory-management.routing.ts │ │ │ ├── product-inquiry │ │ │ │ ├── product-inquiry.component.css │ │ │ │ ├── product-inquiry.component.html │ │ │ │ ├── product-inquiry.component.spec.ts │ │ │ │ └── product-inquiry.component.ts │ │ │ ├── product-maintenance │ │ │ │ ├── product-maintenance.component.css │ │ │ │ ├── product-maintenance.component.html │ │ │ │ ├── product-maintenance.component.spec.ts │ │ │ │ └── product-maintenance.component.ts │ │ │ ├── purchase-order-inquiry │ │ │ │ ├── purchase-order-inquiry.component.css │ │ │ │ ├── purchase-order-inquiry.component.html │ │ │ │ ├── purchase-order-inquiry.component.spec.ts │ │ │ │ └── purchase-order-inquiry.component.ts │ │ │ ├── purchase-order-receiving │ │ │ │ ├── purchase-order-receiving.component.css │ │ │ │ ├── purchase-order-receiving.component.html │ │ │ │ ├── purchase-order-receiving.component.spec.ts │ │ │ │ └── purchase-order-receiving.component.ts │ │ │ ├── sales-order-inquiry │ │ │ │ ├── sales-order-inquiry.component.css │ │ │ │ ├── sales-order-inquiry.component.html │ │ │ │ ├── sales-order-inquiry.component.spec.ts │ │ │ │ └── sales-order-inquiry.component.ts │ │ │ ├── sales-order-shipments │ │ │ │ ├── sales-order-shipments.component.css │ │ │ │ ├── sales-order-shipments.component.html │ │ │ │ ├── sales-order-shipments.component.spec.ts │ │ │ │ └── sales-order-shipments.component.ts │ │ │ ├── upload-product-master │ │ │ │ ├── upload-product-master.component.css │ │ │ │ ├── upload-product-master.component.html │ │ │ │ ├── upload-product-master.component.spec.ts │ │ │ │ └── upload-product-master.component.ts │ │ │ └── view-models │ │ │ │ ├── product-inquiry-response.viewmodel.ts │ │ │ │ ├── product-inquiry.viewmodel.ts │ │ │ │ ├── product-response.viewmodel.ts │ │ │ │ ├── product.viewmodel.ts │ │ │ │ ├── purchase-order-detail-response.viewmodel.ts │ │ │ │ ├── purchase-order-detail.viewmodel.ts │ │ │ │ ├── purchase-order-inquiry-response.viewmodel.ts │ │ │ │ ├── purchase-order-inquiry.viewmodel.ts │ │ │ │ ├── purchase-order-response.viewmodel.ts │ │ │ │ ├── purchase-order.viewmodel.ts │ │ │ │ ├── sales-order-detail-response.viewmodel.ts │ │ │ │ ├── sales-order-detail.viewmodel.ts │ │ │ │ ├── sales-order-inquiry-response.viewmodel.ts │ │ │ │ ├── sales-order-inquiry.viewmodel.ts │ │ │ │ ├── sales-order-response.viewmodel.ts │ │ │ │ └── sales-order.viewmodel.ts │ │ ├── main-nav │ │ │ ├── main-nav.component.css │ │ │ ├── main-nav.component.html │ │ │ ├── main-nav.component.spec.ts │ │ │ └── main-nav.component.ts │ │ ├── material.module.ts │ │ ├── purchase-order-management │ │ │ ├── purchase-order-inquiry │ │ │ │ ├── purchase-order-inquiry.component.css │ │ │ │ ├── purchase-order-inquiry.component.html │ │ │ │ ├── purchase-order-inquiry.component.spec.ts │ │ │ │ └── purchase-order-inquiry.component.ts │ │ │ ├── purchase-order-maintenance │ │ │ │ ├── delete-purchase-order-lineitem-dialog.css │ │ │ │ ├── delete-purchase-order-lineitem-dialog.html │ │ │ │ ├── purchase-order-maintenance.component.css │ │ │ │ ├── purchase-order-maintenance.component.html │ │ │ │ ├── purchase-order-maintenance.component.spec.ts │ │ │ │ ├── purchase-order-maintenance.component.ts │ │ │ │ ├── submit-purchase-order-dialog.css │ │ │ │ └── submit-purchase-order-dialog.html │ │ │ ├── purchase-order-management-nav-bar │ │ │ │ ├── purchase-order-management-nav-bar.component.css │ │ │ │ ├── purchase-order-management-nav-bar.component.html │ │ │ │ ├── purchase-order-management-nav-bar.component.spec.ts │ │ │ │ └── purchase-order-management-nav-bar.component.ts │ │ │ ├── purchase-order-management.module.ts │ │ │ ├── purchase-order-management.routing.ts │ │ │ ├── supplier-inquiry │ │ │ │ ├── supplier-inquiry.component.css │ │ │ │ ├── supplier-inquiry.component.html │ │ │ │ ├── supplier-inquiry.component.spec.ts │ │ │ │ └── supplier-inquiry.component.ts │ │ │ ├── supplier-maintenance │ │ │ │ ├── supplier-maintenance.component.css │ │ │ │ ├── supplier-maintenance.component.html │ │ │ │ ├── supplier-maintenance.component.spec.ts │ │ │ │ └── supplier-maintenance.component.ts │ │ │ └── view-models │ │ │ │ ├── product-response.viewmodel.ts │ │ │ │ ├── product.viewmodel.ts │ │ │ │ ├── purchase-order-detail-response.viewmodel.ts │ │ │ │ ├── purchase-order-detail.viewmodel.ts │ │ │ │ ├── purchase-order-inquiry-response.viewmodel.ts │ │ │ │ ├── purchase-order-inquiry.viewmodel.ts │ │ │ │ ├── purchase-order-response.viewmodel.ts │ │ │ │ ├── purchase-order.viewmodel.ts │ │ │ │ ├── supplier-inquiry-response.viewmodel.ts │ │ │ │ ├── supplier-inquiry.viewmodel.ts │ │ │ │ ├── supplier-response.viewmodel.ts │ │ │ │ └── supplier.viewmodel.ts │ │ ├── sales-order-management │ │ │ ├── customer-inquiry │ │ │ │ ├── customer-inquiry.component.css │ │ │ │ ├── customer-inquiry.component.html │ │ │ │ ├── customer-inquiry.component.spec.ts │ │ │ │ └── customer-inquiry.component.ts │ │ │ ├── customer-maintenance │ │ │ │ ├── customer-maintenance.component.css │ │ │ │ ├── customer-maintenance.component.html │ │ │ │ ├── customer-maintenance.component.spec.ts │ │ │ │ └── customer-maintenance.component.ts │ │ │ ├── sales-order-inquiry │ │ │ │ ├── sales-order-inquiry.component.css │ │ │ │ ├── sales-order-inquiry.component.html │ │ │ │ ├── sales-order-inquiry.component.spec.ts │ │ │ │ └── sales-order-inquiry.component.ts │ │ │ ├── sales-order-maintenance │ │ │ │ ├── delete-sales-order-lineitem-dialog.css │ │ │ │ ├── delete-sales-order-lineitem-dialog.html │ │ │ │ ├── sales-order-maintenance.component.css │ │ │ │ ├── sales-order-maintenance.component.html │ │ │ │ ├── sales-order-maintenance.component.spec.ts │ │ │ │ ├── sales-order-maintenance.component.ts │ │ │ │ ├── submit-sales-order-dialog.css │ │ │ │ └── submit-sales-order-dialog.html │ │ │ ├── sales-order-management-nav-bar │ │ │ │ ├── sales-order-management-nav-bar.component.css │ │ │ │ ├── sales-order-management-nav-bar.component.html │ │ │ │ ├── sales-order-management-nav-bar.component.spec.ts │ │ │ │ └── sales-order-management-nav-bar.component.ts │ │ │ ├── sales-order-management.module.ts │ │ │ ├── sales-order-management.routing.ts │ │ │ └── view-models │ │ │ │ ├── customer-inquiry-response.viewmodel.ts │ │ │ │ ├── customer-inquiry.viewmodel.ts │ │ │ │ ├── customer-response.viewmodel.ts │ │ │ │ ├── customer.viewmodel.ts │ │ │ │ ├── product-response.viewmodel.ts │ │ │ │ ├── product.viewmodel.ts │ │ │ │ ├── sales-order-detail-response.viewmodel.ts │ │ │ │ ├── sales-order-detail.viewmodel.ts │ │ │ │ ├── sales-order-inquiry-response.viewmodel.ts │ │ │ │ ├── sales-order-inquiry.viewmodel.ts │ │ │ │ ├── sales-order-response.viewmodel.ts │ │ │ │ └── sales-order.viewmodel.ts │ │ ├── shared-components-services │ │ │ ├── alert.service.spec.ts │ │ │ ├── alert.service.ts │ │ │ ├── http-interceptor.service.spec.ts │ │ │ ├── http-interceptor.service.ts │ │ │ ├── http.service.spec.ts │ │ │ ├── http.service.ts │ │ │ ├── session.service.spec.ts │ │ │ └── session.service.ts │ │ ├── shared-models │ │ │ ├── appsettings.model.ts │ │ │ ├── response.model.ts │ │ │ └── user.model.ts │ │ └── shared-view-models │ │ │ └── user.viewmodel.ts │ ├── assets │ │ ├── .gitkeep │ │ └── homepage.png │ ├── browserslist │ ├── environments │ │ ├── environment.prod.ts │ │ └── environment.ts │ ├── favicon.ico │ ├── index.html │ ├── karma.conf.js │ ├── main.ts │ ├── polyfills.ts │ ├── start-website.bat │ ├── styles.css │ ├── test.ts │ ├── tsconfig.app.json │ ├── tsconfig.json │ ├── tsconfig.spec.json │ └── tslint.json │ ├── tsconfig.json │ ├── tslint.json │ └── wwwroot │ ├── 3rdpartylicenses.txt │ ├── app-account-management-account-management-module.js │ ├── app-account-management-account-management-module.js.map │ ├── app-inventory-management-inventory-management-module.js │ ├── app-inventory-management-inventory-management-module.js.map │ ├── app-purchase-order-management-purchase-order-management-module.js │ ├── app-purchase-order-management-purchase-order-management-module.js.map │ ├── app-sales-order-management-sales-order-management-module.js │ ├── app-sales-order-management-sales-order-management-module.js.map │ ├── assets │ └── homepage.png │ ├── favicon.ico │ ├── index.html │ ├── main.js │ ├── main.js.map │ ├── polyfills.js │ ├── polyfills.js.map │ ├── runtime.js │ ├── runtime.js.map │ ├── styles.js │ ├── styles.js.map │ ├── vendor.js │ └── vendor.js.map ├── PurchaseOrderManagement ├── CodeProject.PurchaseOrderManagement.BusinessRules.sln ├── CodeProject.PurchaseOrderManagement.BusinessRules │ ├── CodeProject.PurchaseOrderManagement.BusinessRules.csproj │ ├── PurchaseOrderDetailBusinessRules.cs │ └── SupplierBusinessRules.cs ├── CodeProject.PurchaseOrderManagement.BusinessServices.sln ├── CodeProject.PurchaseOrderManagement.BusinessServices │ ├── CodeProject.PurchaseOrderManagement.BusinessServices.csproj │ └── PurchaseOrderManagementBusinessService.cs ├── CodeProject.PurchaseOrderManagement.Data.EntityFramework.sln ├── CodeProject.PurchaseOrderManagement.Data.EntityFramework │ ├── CodeProject.PurchaseOrderManagement.Data.EntityFramework.csproj │ ├── EntityFrameworkRepository.cs │ ├── Migrations │ │ ├── 20181118152323_InitialDatabase.Designer.cs │ │ ├── 20181118152323_InitialDatabase.cs │ │ └── PurchaseOrderManagementDatabaseModelSnapshot.cs │ ├── PurchaseOrderManagementDataService.cs │ └── PurchaseOrderManagementDatabase.cs ├── CodeProject.PurchaseOrderManagement.Data.Models.sln ├── CodeProject.PurchaseOrderManagement.Data.Models │ ├── CodeProject.PurchaseOrderManagement.Data.Models.csproj │ ├── Entities │ │ ├── Product.cs │ │ ├── PurchaseOrder.cs │ │ ├── PurchaseOrderDetail.cs │ │ ├── PurchaseOrderNumberSequence.cs │ │ ├── PurchaseOrderStatus.cs │ │ ├── Supplier.cs │ │ ├── TransactionQueueInbound.cs │ │ ├── TransactionQueueInboundHistory.cs │ │ ├── TransactionQueueOutbound.cs │ │ ├── TransactionQueueOutboundHistory.cs │ │ └── TransactionQueueSemaphore.cs │ └── Transformations │ │ ├── ProductDataTransformation.cs │ │ ├── PurchaseOrderDataTransformation.cs │ │ ├── PurchaseOrderDetailDataTransformation.cs │ │ ├── PurchaseOrderInquiryDataTransformation.cs │ │ ├── SupplierDataTransformation.cs │ │ └── SupplierInquiryDataTransformation.cs ├── CodeProject.PurchaseOrderManagement.Interfaces.sln ├── CodeProject.PurchaseOrderManagement.Interfaces │ ├── CodeProject.PurchaseOrderManagement.Interfaces.csproj │ ├── IPurchaseOrderManagementBusinessService.cs │ └── IPurchaseOrderManagementDataService.cs ├── CodeProject.PurchaseOrderManagement.MessageQueueing.sln ├── CodeProject.PurchaseOrderManagement.MessageQueueing │ ├── CodeProject.PurchaseOrderManagement.MessageQueueing.csproj │ ├── MessageProcessing.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── appsettings.Development.json │ └── appsettings.json ├── CodeProject.PurchaseOrderManagement.WebApi.sln └── CodeProject.PurchaseOrderManagement.WebApi │ ├── ActionFilters │ └── SecurityActionFilter.cs │ ├── CodeProject.PurchaseOrderManagement.WebApi.csproj │ ├── CodeProject.PurchaseOrderManagement.WebApi.csproj.user │ ├── Controllers │ ├── PurchaseOrderController.cs │ ├── SupplierController.cs │ └── ValuesController.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── SignalRHub │ └── MessageQueueHub.cs │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── README.md ├── SalesOrderManagement ├── .vs │ ├── CodeProject.SalesOrderManagement.BusinessServices │ │ ├── DesignTimeBuild │ │ │ └── .dtbcache.v2 │ │ └── v16 │ │ │ └── .suo │ └── CodeProject.SalesOrderManagement.WebApi │ │ ├── DesignTimeBuild │ │ └── .dtbcache.v2 │ │ └── v16 │ │ └── .suo ├── CodeProject.SalesOrderManagement.BusinessRules.sln ├── CodeProject.SalesOrderManagement.BusinessRules │ ├── CodeProject.SalesOrderManagement.BusinessRules.csproj │ ├── CustomerBusinessRules.cs │ └── SalesOrderDetailBusinessRules.cs ├── CodeProject.SalesOrderManagement.BusinessServices.sln ├── CodeProject.SalesOrderManagement.BusinessServices │ ├── CodeProject.SalesOrderManagement.BusinessServices.csproj │ └── SalesOrderManagementBusinessService.cs ├── CodeProject.SalesOrderManagement.Data.EntityFramework.sln ├── CodeProject.SalesOrderManagement.Data.EntityFramework │ ├── CodeProject.SalesOrderManagement.Data.EntityFramework.csproj │ ├── EntityFrameworkRepository.cs │ ├── Migrations │ │ ├── 20181117234948_InitialDatabase.Designer.cs │ │ ├── 20181117234948_InitialDatabase.cs │ │ └── SalesOrderManagementDatabaseModelSnapshot.cs │ ├── SalesOrderManagementDataService.cs │ └── SalesOrderManagementDatabase.cs ├── CodeProject.SalesOrderManagement.Data.Models.sln ├── CodeProject.SalesOrderManagement.Data.Models │ ├── CodeProject.SalesOrderManagement.Data.Models.csproj │ ├── Entities │ │ ├── Customer.cs │ │ ├── Product.cs │ │ ├── SalesOrder.cs │ │ ├── SalesOrderDetail.cs │ │ ├── SalesOrderNumberSequence.cs │ │ ├── SalesOrderStatus.cs │ │ ├── TransactionQueueInbound.cs │ │ ├── TransactionQueueInboundHistory.cs │ │ ├── TransactionQueueOutbound.cs │ │ ├── TransactionQueueOutboundHistory.cs │ │ └── TransactionQueueSemaphore.cs │ └── Transformations │ │ ├── CustomerDataTransformation.cs │ │ ├── CustomerInquiryDataTransformation.cs │ │ ├── ProductDataTransformation.cs │ │ ├── SalesOrderDataTransformation.cs │ │ ├── SalesOrderDetailDataTransformation.cs │ │ └── SalesOrderInquiryDataTransformation.cs ├── CodeProject.SalesOrderManagement.Interfaces.sln ├── CodeProject.SalesOrderManagement.Interfaces │ ├── CodeProject.SalesOrderManagement.Interfaces.csproj │ ├── ISalesOrderManagementBusinessService.cs │ └── ISalesOrderManagementDataService.cs ├── CodeProject.SalesOrderManagement.MessageQueueing.sln ├── CodeProject.SalesOrderManagement.MessageQueueing │ ├── CodeProject.SalesOrderManagement.MessageQueueing.csproj │ ├── MessageProcessing.cs │ ├── Program.cs │ ├── Properties │ │ └── launchSettings.json │ ├── appsettings.Development.json │ └── appsettings.json ├── CodeProject.SalesOrderManagement.WebApi.sln └── CodeProject.SalesOrderManagement.WebApi │ ├── ActionFilters │ └── SecurityActionFilter.cs │ ├── CodeProject.SalesOrderManagement.WebApi.csproj │ ├── CodeProject.SalesOrderManagement.WebApi.csproj.user │ ├── Controllers │ ├── CustomerController.cs │ ├── SalesOrderController.cs │ └── ValuesController.cs │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── SignalRHub │ └── MessageQueueHub.cs │ ├── Startup.cs │ ├── appsettings.Development.json │ └── appsettings.json ├── Shared ├── CodeProject.Shared.Common.Interfaces │ ├── CodeProject.Shared.Common.Interfaces.csproj │ ├── IDataRepository.cs │ ├── IMessageQueue.cs │ ├── IMessageQueueConfiguration.cs │ ├── IMessageQueueConnection.cs │ ├── IMessageQueueProcessing.cs │ ├── IMessageQueueing.cs │ └── obj │ │ ├── CodeProject.Shared.Common.Interfaces.csproj.nuget.dgspec.json │ │ ├── CodeProject.Shared.Common.Interfaces.csproj.nuget.g.props │ │ ├── CodeProject.Shared.Common.Interfaces.csproj.nuget.g.targets │ │ ├── Debug │ │ └── netcoreapp3.1 │ │ │ ├── CodeProject.Shared.Common.Interfaces.AssemblyInfo.cs │ │ │ ├── CodeProject.Shared.Common.Interfaces.AssemblyInfoInputs.cache │ │ │ ├── CodeProject.Shared.Common.Interfaces.assets.cache │ │ │ └── CodeProject.Shared.Common.Interfaces.csprojAssemblyReference.cache │ │ ├── project.assets.json │ │ └── project.nuget.cache ├── CodeProject.Shared.Common.Models │ ├── AppSettings.cs │ ├── CodeProject.Shared.Common.Models.csproj │ ├── CodeProject.Shared.Common.Models.sln │ ├── ConnectionStrings.cs │ ├── MessageQueue.cs │ ├── MessageQueueAppConfig.cs │ ├── MessageQueueDirection.cs │ ├── MessageQueueEndpoints.cs │ ├── MessageQueueExchanges.cs │ ├── MessageQueueFanouts.cs │ ├── MessageQueuePayloads │ │ ├── InventoryTransactionPayload.cs │ │ ├── ProductUpdatePayload.cs │ │ ├── PurchaseOrderUpdatePayload.cs │ │ └── SalesPrderUpdatePayload.cs │ ├── MessageQueueReceipt.cs │ ├── PagingInformation.cs │ ├── PurchaseOrderStatuses.cs │ ├── ResponseModel.cs │ ├── SalesOrderStatuses.cs │ ├── SecurityModel.cs │ ├── TransactionQueueTypes.cs │ ├── UserTypes.cs │ ├── ValidationResult.cs │ └── obj │ │ ├── CodeProject.Shared.Common.Models.csproj.nuget.dgspec.json │ │ ├── CodeProject.Shared.Common.Models.csproj.nuget.g.props │ │ ├── CodeProject.Shared.Common.Models.csproj.nuget.g.targets │ │ ├── Debug │ │ └── netcoreapp3.1 │ │ │ ├── CodeProject.Shared.Common.Models.AssemblyInfo.cs │ │ │ ├── CodeProject.Shared.Common.Models.AssemblyInfoInputs.cache │ │ │ ├── CodeProject.Shared.Common.Models.assets.cache │ │ │ └── CodeProject.Shared.Common.Models.csprojAssemblyReference.cache │ │ ├── project.assets.json │ │ └── project.nuget.cache └── CodeProject.Shared.Common.Utilites │ ├── CodeProject.Shared.Common.Utilities.csproj │ ├── ConfigurationUtility.cs │ ├── Functions.cs │ ├── Hasher.cs │ ├── Serialization.cs │ ├── TokenManagement.cs │ ├── ValidationRules.cs │ ├── Validations.cs │ └── obj │ ├── CodeProject.Shared.Common.Utilities.csproj.nuget.dgspec.json │ ├── CodeProject.Shared.Common.Utilities.csproj.nuget.g.props │ ├── CodeProject.Shared.Common.Utilities.csproj.nuget.g.targets │ ├── Debug │ └── netcoreapp3.1 │ │ ├── CodeProject.Shared.Common.Utilities.AssemblyInfo.cs │ │ ├── CodeProject.Shared.Common.Utilities.AssemblyInfoInputs.cache │ │ ├── CodeProject.Shared.Common.Utilities.assets.cache │ │ └── CodeProject.Shared.Common.Utilities.csprojAssemblyReference.cache │ ├── project.assets.json │ └── project.nuget.cache ├── SolidPrinciples └── SOLIDConsoleApplication │ ├── .vs │ └── SOLIDConsoleApplication │ │ └── v16 │ │ └── .suo │ ├── Calculations │ ├── PromotionalDiscountCalculation.cs │ ├── StateSalesTaxCalculation.cs │ ├── ValueAddedTaxCalculation.cs │ └── VolumeDiscountCalculation.cs │ ├── Entities │ ├── Order.cs │ └── OrderAdjustment.cs │ ├── Interfaces │ ├── IAdjustmentsBusinessService.cs │ ├── ICalculation.cs │ └── IDataAccessService.cs │ ├── Program.cs │ ├── SOLIDConsoleApplication.csproj │ ├── SOLIDConsoleApplication.sln │ ├── Services │ ├── DataAccessService.cs │ └── OrderAdjustmentsBusinessService.cs │ ├── Tables │ ├── PromotionalDiscountTable.cs │ ├── StateTaxTable.cs │ ├── TierDiscountTable.cs │ └── ValueAddedTaxTable.cs │ ├── bin │ └── Debug │ │ └── netcoreapp3.1 │ │ ├── SOLIDConsoleApplication.deps.json │ │ ├── SOLIDConsoleApplication.dll │ │ ├── SOLIDConsoleApplication.exe │ │ ├── SOLIDConsoleApplication.pdb │ │ ├── SOLIDConsoleApplication.runtimeconfig.dev.json │ │ └── SOLIDConsoleApplication.runtimeconfig.json │ └── obj │ ├── Debug │ └── netcoreapp3.1 │ │ ├── SOLIDConsoleApplication.AssemblyInfo.cs │ │ ├── SOLIDConsoleApplication.AssemblyInfoInputs.cache │ │ ├── SOLIDConsoleApplication.assets.cache │ │ ├── SOLIDConsoleApplication.csproj.CoreCompileInputs.cache │ │ ├── SOLIDConsoleApplication.csproj.FileListAbsolute.txt │ │ ├── SOLIDConsoleApplication.csprojAssemblyReference.cache │ │ ├── SOLIDConsoleApplication.dll │ │ ├── SOLIDConsoleApplication.exe │ │ ├── SOLIDConsoleApplication.genruntimeconfig.cache │ │ └── SOLIDConsoleApplication.pdb │ ├── SOLIDConsoleApplication.csproj.nuget.dgspec.json │ ├── SOLIDConsoleApplication.csproj.nuget.g.props │ ├── SOLIDConsoleApplication.csproj.nuget.g.targets │ ├── project.assets.json │ └── project.nuget.cache └── Support ├── RunAllProcesses.bat ├── SpawnProcesses ├── SpawnProcesses.sln └── SpawnProcesses │ ├── Program.cs │ ├── Properties │ └── launchSettings.json │ ├── SpawnProcesses.csproj │ ├── StartUpProcesses.cs │ └── appsettings.Development.json ├── StartAccountManagementWebApi.bat ├── StartInventoryManagementMessageQueue.bat ├── StartInventoryManagementWebApi.bat ├── StartLoggingManagementMessageQueue.bat ├── StartPurchaseOrderManagementMessageQueue.bat ├── StartPurchaseOrderManagementWebApi.bat ├── StartSalesOrderManagementMessageQueue.bat ├── StartSalesOrderManagementWebApi.bat ├── _BuildAllProjects.bat └── _StartDevelopmentWebServersAndQueues.bat /AccountManagement/CodeProject.AccountManagement.BusinessRules/CodeProject.AccountManagement.BusinessRules.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Data.EntityFramework/CodeProject.AccountManagement.Data.EntityFramework.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Data.Models/CodeProject.AccountManagement.Data.Models.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Data.Models/Entities/Account.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.AccountManagement.Data.Entities 6 | { 7 | public class Account 8 | { 9 | public int AccountId { get; set; } 10 | public string Name { get; set; } 11 | public DateTime DateCreated { get; set; } 12 | public DateTime DateUpdated { get; set; } 13 | public int PurchasedApplications { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Data.Models/Entities/Application.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.AccountManagement.Data.Entities 6 | { 7 | public class Application 8 | { 9 | public int ApplicationId { get; set; } 10 | public string Description { get; set; } 11 | public string ApplicationCode { get; set; } 12 | public int ApplicationSeed { get; set; } 13 | public DateTime DateCreated { get; set; } 14 | public DateTime DateUpdated { get; set; } 15 | 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Data.Models/Entities/User.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.AccountManagement.Data.Entities 6 | { 7 | public class User 8 | { 9 | public int UserId { get; set; } 10 | public string EmailAddress { get; set; } 11 | public string Password { get; set; } 12 | public string PasswordSalt { get; set; } 13 | public string FirstName { get; set; } 14 | public string LastName { get; set; } 15 | public int AccountId { get; set; } 16 | public int UserTypeId { get; set; } 17 | public DateTime DateCreated { get; set; } 18 | public DateTime DateUpdated { get; set; } 19 | public DateTime DateLastLogin { get; set; } 20 | public Account Account { get; set; } 21 | public UserType UserType { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Data.Models/Entities/UserType.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.AccountManagement.Data.Entities 6 | { 7 | public class UserType 8 | { 9 | public int UserTypeId { get; set; } 10 | public string Description { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Data.Models/Transformations/AccountDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.AccountManagement.Data.Transformations 6 | { 7 | public class AccountDataTransformation 8 | { 9 | public int UserId { get; set; } 10 | public int AccountId { get; set; } 11 | public string FirstName { get; set; } 12 | public string LastName { get; set; } 13 | public string CompanyName { get; set; } 14 | public string EmailAddress { get; set; } 15 | public string Password { get; set; } 16 | public string PasswordConfirmation { get; set; } 17 | public string Token { get; set; } 18 | public bool IsAuthenicated { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Interfaces/CodeProject.AccountManagement.Interfaces.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Interfaces/IAccountManagementBusinessService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | using CodeProject.Shared.Common.Models; 6 | using CodeProject.AccountManagement.Data.Entities; 7 | using CodeProject.AccountManagement.Data.Transformations; 8 | 9 | namespace CodeProject.AccountManagement.Interfaces 10 | { 11 | public interface IAccountManagementBusinessService 12 | { 13 | Task> Register(AccountDataTransformation accountDataTransformation); 14 | Task> Login(AccountDataTransformation accountDataTransformation); 15 | Task> UpdateUser(AccountDataTransformation accountDataTransformation); 16 | Task> UpdateUser(int userId); 17 | 18 | 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.Interfaces/IAccountManagementDataService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using CodeProject.AccountManagement.Data.Entities; 5 | using System.Threading.Tasks; 6 | using CodeProject.Shared.Common.Interfaces; 7 | 8 | namespace CodeProject.AccountManagement.Interfaces 9 | { 10 | public interface IAccountManagementDataService : IDataRepository, IDisposable 11 | { 12 | Task CreateUser(User user); 13 | Task CreateAccount(Account account); 14 | Task GetUserByEmailAddress(string emailAddress); 15 | Task UpdateUser(User user); 16 | Task UpdateAccount(Account account); 17 | Task GetUserByUserId(int userId); 18 | Task GetAccountInformation(int accountId); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.WebApi/CodeProject.AccountManagement.WebApi.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ApiControllerEmptyScaffolder 5 | root/Controller 6 | 600 7 | True 8 | False 9 | True 10 | 11 | False 12 | 13 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.WebApi/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace CodeProject.AccountManagement.WebApi 12 | { 13 | public class Program 14 | { 15 | public static void Main(string[] args) 16 | { 17 | CreateWebHostBuilder(args).Build().Run(); 18 | } 19 | 20 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 21 | WebHost.CreateDefaultBuilder(args) 22 | .UseStartup(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.WebApi/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/launchsettings.json", 3 | "iisSettings": { 4 | "windowsAuthentication": false, 5 | "anonymousAuthentication": true, 6 | "iisExpress": { 7 | "applicationUrl": "http://localhost:57639", 8 | "sslPort": 44303 9 | } 10 | }, 11 | "profiles": { 12 | "IIS Express": { 13 | "commandName": "IISExpress", 14 | "launchBrowser": true, 15 | "launchUrl": "api/values", 16 | "environmentVariables": { 17 | "ASPNETCORE_ENVIRONMENT": "Development" 18 | } 19 | }, 20 | "CodeProject.AccountManagement.WebApi": { 21 | "commandName": "Project", 22 | "launchBrowser": true, 23 | "launchUrl": "api/values", 24 | "applicationUrl": "https://localhost:44303;http://localhost:57639", 25 | "environmentVariables": { 26 | "ASPNETCORE_ENVIRONMENT": "Development" 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.WebApi/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_AccountManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Debug", 8 | "System": "Information", 9 | "Microsoft": "Information" 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /AccountManagement/CodeProject.AccountManagement.WebApi/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_AccountManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /Databases/MS_AccountManagement_DEV.mdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_AccountManagement_DEV.mdf -------------------------------------------------------------------------------- /Databases/MS_AccountManagement_DEV_log.ldf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_AccountManagement_DEV_log.ldf -------------------------------------------------------------------------------- /Databases/MS_InventoryManagement_DEV.mdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_InventoryManagement_DEV.mdf -------------------------------------------------------------------------------- /Databases/MS_InventoryManagement_DEV_log.ldf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_InventoryManagement_DEV_log.ldf -------------------------------------------------------------------------------- /Databases/MS_LoggingManagement_DEV.mdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_LoggingManagement_DEV.mdf -------------------------------------------------------------------------------- /Databases/MS_LoggingManagement_DEV_log.ldf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_LoggingManagement_DEV_log.ldf -------------------------------------------------------------------------------- /Databases/MS_PurchaseOrderManagement_DEV.mdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_PurchaseOrderManagement_DEV.mdf -------------------------------------------------------------------------------- /Databases/MS_PurchaseOrderManagement_DEV_log.ldf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_PurchaseOrderManagement_DEV_log.ldf -------------------------------------------------------------------------------- /Databases/MS_SalesOrderManagement_DEV.mdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_SalesOrderManagement_DEV.mdf -------------------------------------------------------------------------------- /Databases/MS_SalesOrderManagement_DEV_log.ldf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Databases/MS_SalesOrderManagement_DEV_log.ldf -------------------------------------------------------------------------------- /InventoryManagement/.vs/CodeProject.InventoryManagement.WebApi/DesignTimeBuild/.dtbcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/InventoryManagement/.vs/CodeProject.InventoryManagement.WebApi/DesignTimeBuild/.dtbcache.v2 -------------------------------------------------------------------------------- /InventoryManagement/.vs/CodeProject.InventoryManagement.WebApi/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/InventoryManagement/.vs/CodeProject.InventoryManagement.WebApi/v16/.suo -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.BusinessRules/CodeProject.InventoryManagement.BusinessRules.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.BusinessServices/.vs/CodeProject.InventoryManagement.BusinessServices/DesignTimeBuild/.dtbcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/InventoryManagement/CodeProject.InventoryManagement.BusinessServices/.vs/CodeProject.InventoryManagement.BusinessServices/DesignTimeBuild/.dtbcache.v2 -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.BusinessServices/.vs/CodeProject.InventoryManagement.BusinessServices/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/InventoryManagement/CodeProject.InventoryManagement.BusinessServices/.vs/CodeProject.InventoryManagement.BusinessServices/v16/.suo -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.BusinessServices/CodeProject.InventoryManagement.BusinessServices.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/CodeProject.InventoryManagement.Data.Models.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/InventoryTransaction.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | public class InventoryTransaction 8 | { 9 | public int InventoryTransactionId { get; set; } 10 | public int ProductId { get; set; } 11 | public int Quantity { get; set; } 12 | public double UnitCost { get; set; } 13 | public int EntityId { get; set; } 14 | public int MasterEntityId { get; set; } 15 | public DateTime TransactionDate { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/Product.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | public class Product 8 | { 9 | public int AccountId { get; set; } 10 | public int ProductId { get; set; } 11 | public string ProductNumber { get; set; } 12 | public string Description { get; set; } 13 | public string BinLocation { get; set; } 14 | public double UnitPrice { get; set; } 15 | public double AverageCost { get; set; } 16 | public int OnHandQuantity { get; set; } 17 | public int OnOrderQuantity { get; set; } 18 | public int CommittedQuantity { get; set; } 19 | public DateTime DateCreated { get; set; } 20 | public DateTime DateUpdated { get; set; } 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/PurchaseOrderDetail.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | 8 | public class PurchaseOrderDetail 9 | { 10 | public int PurchaseOrderDetailId { get; set; } 11 | public int AccountId { get; set; } 12 | public int MasterPurchaseOrderDetailId { get; set; } 13 | public int PurchaseOrderId { get; set; } 14 | public int ProductId { get; set; } 15 | public string ProductNumber { get; set; } 16 | public string ProductDescription { get; set; } 17 | public double UnitPrice { get; set; } 18 | public int OrderQuantity { get; set; } 19 | public int ReceivedQuantity { get; set; } 20 | public double OrderTotal { get; set; } 21 | public DateTime DateCreated { get; set; } 22 | public DateTime DateUpdated { get; set; } 23 | public Product Product { get; set; } 24 | public PurchaseOrder PurchaseOrder { get; set; } 25 | } 26 | 27 | 28 | } 29 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/PurchaseOrderStatus.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | 8 | public class PurchaseOrderStatus 9 | { 10 | public int PurchaseOrderStatusId { get; set; } 11 | public string Description { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/SalesOrder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | 8 | public class SalesOrder 9 | { 10 | public int SalesOrderId { get; set; } 11 | public int MasterSalesOrderId { get; set; } 12 | public int SalesOrderNumber { get; set; } 13 | public int AccountId { get; set; } 14 | public string CustomerName { get; set; } 15 | public string AddressLine1 { get; set; } 16 | public string AddressLine2 { get; set; } 17 | public string City { get; set; } 18 | public string Region { get; set; } 19 | public string PostalCode { get; set; } 20 | public double OrderTotal { get; set; } 21 | public int SalesOrderStatusId { get; set; } 22 | public DateTime DateCreated { get; set; } 23 | public DateTime DateUpdated { get; set; } 24 | public SalesOrderStatus SalesOrderStatus { get; set; } 25 | public List SalesOrderDetails { get; set; } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/SalesOrderDetail.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | 8 | public class SalesOrderDetail 9 | { 10 | public int SalesOrderDetailId { get; set; } 11 | public int AccountId { get; set; } 12 | public int MasterSalesOrderDetailId { get; set; } 13 | public int SalesOrderId { get; set; } 14 | public int ProductId { get; set; } 15 | public string ProductNumber { get; set; } 16 | public string ProductDescription { get; set; } 17 | public double UnitPrice { get; set; } 18 | public int OrderQuantity { get; set; } 19 | public int ShippedQuantity { get; set; } 20 | public double OrderTotal { get; set; } 21 | public DateTime DateCreated { get; set; } 22 | public DateTime DateUpdated { get; set; } 23 | public Product Product { get; set; } 24 | public SalesOrder SalesOrder { get; set; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/SalesOrderStatus.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | 8 | public class SalesOrderStatus 9 | { 10 | public int SalesOrderStatusId { get; set; } 11 | public string Description { get; set; } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/TransactionQueueInbound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | public class TransactionQueueInbound 8 | { 9 | public int TransactionQueueInboundId { get; set; } 10 | public int SenderTransactionQueueId { get; set; } 11 | public string TransactionCode { get; set; } 12 | public string Payload { get; set; } 13 | public string ExchangeName { get; set; } 14 | public DateTime DateCreated { get; set; } 15 | } 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/TransactionQueueInboundHistory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | public class TransactionQueueInboundHistory 8 | { 9 | public int TransactionQueueInboundHistoryId { get; set; } 10 | public int TransactionQueueInboundId { get; set; } 11 | public int SenderTransactionQueueId { get; set; } 12 | public string TransactionCode { get; set; } 13 | public string Payload { get; set; } 14 | public string ExchangeName { get; set; } 15 | public bool ProcessedSuccessfully { get; set; } 16 | public bool DuplicateMessage { get; set; } 17 | public string ErrorMessage { get; set; } 18 | public DateTime DateCreatedInbound { get; set; } 19 | public DateTime DateCreated { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/TransactionQueueOutbound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | public class TransactionQueueOutbound 8 | { 9 | public int TransactionQueueOutboundId { get; set; } 10 | public string TransactionCode { get; set; } 11 | public string Payload { get; set; } 12 | public string ExchangeName { get; set; } 13 | public Boolean SentToExchange { get; set; } 14 | public DateTime DateCreated { get; set; } 15 | public DateTime DateSentToExchange { get; set; } 16 | public DateTime DateToResendToExchange { get; set; } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/TransactionQueueOutboundHistory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | public class TransactionQueueOutboundHistory 8 | { 9 | public int TransactionQueueOutboundHistoryId { get; set; } 10 | public int TransactionQueueOutboundId { get; set; } 11 | public string TransactionCode { get; set; } 12 | public string Payload { get; set; } 13 | public string ExchangeName { get; set; } 14 | public Boolean SentToExchange { get; set; } 15 | public DateTime DateOutboundTransactionCreated { get; set; } 16 | public DateTime DateSentToExchange { get; set; } 17 | public DateTime DateToResendToExchange { get; set; } 18 | public DateTime DateCreated { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Entities/TransactionQueueSemaphore.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Entities 6 | { 7 | public class TransactionQueueSemaphore 8 | { 9 | public int TransactionQueueSemaphoreId { get; set; } 10 | public string SemaphoreKey { get; set; } 11 | public DateTime DateCreated { get; set; } 12 | public DateTime DateUpdated { get; set; } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Transformations/ProductDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Transformations 6 | { 7 | public class ProductDataTransformation 8 | { 9 | public int AccountId { get; set; } 10 | public int ProductId { get; set; } 11 | public string ProductNumber { get; set; } 12 | public string Description { get; set; } 13 | public string BinLocation { get; set; } 14 | public double UnitPrice { get; set; } 15 | public double AverageCost { get; set; } 16 | public int OnHandQuantity { get; set; } 17 | public int OnOrderQuantity { get; set; } 18 | public int CommittedQuantity { get; set; } 19 | public DateTime DateCreated { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Transformations/ProductInquiryDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Transformations 6 | { 7 | 8 | public class ProductInquiryDataTransformation 9 | { 10 | public string ProductNumber { get; set; } 11 | public int CurrentPageNumber { get; set; } 12 | public int PageSize { get; set; } 13 | public string SortDirection { get; set; } 14 | public string SortExpression { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Transformations/PurchaseOrderDetailDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Transformations 6 | { 7 | public class PurchaseOrderDetailDataTransformation 8 | { 9 | public int AccountId { get; set; } 10 | public int PurchaseOrderDetailId { get; set; } 11 | public int PurchaseOrderId { get; set; } 12 | public int ProductId { get; set; } 13 | public int ProductMasterId { get; set; } 14 | public string ProductNumber { get; set; } 15 | public string ProductDescription { get; set; } 16 | public double UnitPrice { get; set; } 17 | public int OrderQuantity { get; set; } 18 | public int ReceivedQuantity { get; set; } 19 | public int CurrentReceivedQuantity { get; set; } 20 | public double OrderTotal { get; set; } 21 | public DateTime DateCreated { get; set; } 22 | public DateTime DateUpdated { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Transformations/PurchaseOrderInquiryDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Transformations 6 | { 7 | public class PurchaseOrderInquiryDataTransformation 8 | { 9 | public string SupplierName { get; set; } 10 | public int CurrentPageNumber { get; set; } 11 | public int PageSize { get; set; } 12 | public string SortDirection { get; set; } 13 | public string SortExpression { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Transformations/SalesOrderDetailDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Transformations 6 | { 7 | 8 | public class SalesOrderDetailDataTransformation 9 | { 10 | public int AccountId { get; set; } 11 | public int SalesOrderDetailId { get; set; } 12 | public int SalesOrderId { get; set; } 13 | public int ProductId { get; set; } 14 | public int ProductMasterId { get; set; } 15 | public string ProductNumber { get; set; } 16 | public string ProductDescription { get; set; } 17 | public double UnitPrice { get; set; } 18 | public int OrderQuantity { get; set; } 19 | public int ShippedQuantity { get; set; } 20 | public int CurrentShippedQuantity { get; set; } 21 | public double OrderTotal { get; set; } 22 | public DateTime DateCreated { get; set; } 23 | public DateTime DateUpdated { get; set; } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Data.Models/Transformations/SalesOrderInquiryDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.InventoryManagement.Data.Transformations 6 | { 7 | 8 | public class SalesOrderInquiryDataTransformation 9 | { 10 | public string CustomerName { get; set; } 11 | public int CurrentPageNumber { get; set; } 12 | public int PageSize { get; set; } 13 | public string SortDirection { get; set; } 14 | public string SortExpression { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.Interfaces/CodeProject.InventoryManagement.Interfaces.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.MessageQueueing/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "CodeProject.InventoryManagement.MessageQueueing": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | } 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.MessageQueueing/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_InventoryManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "MessageQueueAppConfig": { 6 | "ExchangeName": "InventoryManagement_DEV", 7 | "RoutingKey": "ERP-DEV", 8 | "InboundMessageQueue": "InventoryManagement_DEV", 9 | "OutboundMessageQueues": "SalesOrderManagement_DEV", 10 | "LoggingExchangeName": "LoggingManagement_DEV", 11 | "LoggingMessageQueue": "LoggingManagement_DEV" 12 | }, 13 | "Logging": { 14 | "LogLevel": { 15 | "Default": "Information" 16 | } 17 | }, 18 | "AppConfig": { 19 | "TextToPrint": "This is from configuration" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.WebApi/CodeProject.InventoryManagement.WebApi.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ApiControllerEmptyScaffolder 5 | root/Controller 6 | 600 7 | True 8 | False 9 | True 10 | 11 | False 12 | 13 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.WebApi/Controllers/HttpFileCollection.cs: -------------------------------------------------------------------------------- 1 | namespace CodeProject.InventoryManagement.WebApi.Controllers 2 | { 3 | internal class HttpFileCollection 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.WebApi/Controllers/HttpPostedFile.cs: -------------------------------------------------------------------------------- 1 | namespace CodeProject.InventoryManagement.WebApi.Controllers 2 | { 3 | internal class HttpPostedFile 4 | { 5 | } 6 | } -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.WebApi/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace CodeProject.InventoryManagement.WebApi 12 | { 13 | public class Program 14 | { 15 | public static void Main(string[] args) 16 | { 17 | CreateWebHostBuilder(args).Build().Run(); 18 | } 19 | 20 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 21 | WebHost.CreateDefaultBuilder(args) 22 | .UseStartup(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.WebApi/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/launchsettings.json", 3 | "iisSettings": { 4 | "windowsAuthentication": false, 5 | "anonymousAuthentication": true, 6 | "iisExpress": { 7 | "applicationUrl": "http://localhost:57218", 8 | "sslPort": 44340 9 | } 10 | }, 11 | "profiles": { 12 | "IIS Express": { 13 | "commandName": "IISExpress", 14 | "launchBrowser": true, 15 | "launchUrl": "api/values", 16 | "environmentVariables": { 17 | "ASPNETCORE_ENVIRONMENT": "Development" 18 | } 19 | }, 20 | "CodeProject.InventoryManagement.WebApi": { 21 | "commandName": "Project", 22 | "launchBrowser": true, 23 | "launchUrl": "api/values", 24 | "applicationUrl": "https://localhost:44340;http://localhost:57218", 25 | "environmentVariables": { 26 | "ASPNETCORE_ENVIRONMENT": "Development" 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.WebApi/SignalRHub/MessageQueueHub.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.SignalR; 6 | 7 | namespace CodeProject.InventoryManagement.WebApi.SignalRHub 8 | { 9 | public class MessageQueueHub : Hub 10 | { 11 | //public async Task SendMessage(string user, string message) 12 | //{ 13 | // await Clients.All.SendAsync("SendMessage", user, message); 14 | //} 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /InventoryManagement/CodeProject.InventoryManagement.WebApi/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_InventoryManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.Data.Models/CodeProject.LoggingManagement.Data.Models.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.Data.Models/Entities/AcknowledgementsQueue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.LoggingManagement.Data.Entities 6 | { 7 | public class AcknowledgementsQueue 8 | { 9 | public int AcknowledgementsQueueId { get; set; } 10 | public int SenderTransactionQueueId { get; set; } 11 | public string TransactionCode { get; set; } 12 | public string ExchangeName { get; set; } 13 | public string AcknowledgementQueue { get; set; } 14 | public DateTime DateCreated { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.Data.Models/Entities/MessagesReceived.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.LoggingManagement.Data.Entities 6 | { 7 | public class MessagesReceived 8 | { 9 | public int MessagesReceivedId { get; set; } 10 | public int SenderTransactionQueueId { get; set; } 11 | public string QueueName { get; set; } 12 | public string TransactionCode { get; set; } 13 | public string ExchangeName { get; set; } 14 | public string Payload { get; set; } 15 | public DateTime DateCreated { get; set; } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.Data.Models/Entities/MessagesSent.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.LoggingManagement.Data.Entities 6 | { 7 | public class MessagesSent 8 | { 9 | public int MessagesSentId { get; set; } 10 | public int SenderTransactionQueueId { get; set; } 11 | public string TransactionCode { get; set; } 12 | public string ExchangeName { get; set; } 13 | public string Payload { get; set; } 14 | public DateTime DateCreated { get; set; } 15 | public DateTime DateUpdated { get; set; } 16 | public int AcknowledgementsRequired { get; set; } 17 | public int AcknowledgementsReceived { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.Data.Models/Entities/TransactionQueueSemaphore.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.LoggingManagement.Data.Entities 6 | { 7 | public class TransactionQueueSemaphore 8 | { 9 | public int TransactionQueueSemaphoreId { get; set; } 10 | public string SemaphoreKey { get; set; } 11 | public DateTime DateCreated { get; set; } 12 | public DateTime DateUpdated { get; set; } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.Interfaces/CodeProject.LoggingManagement.Interfaces.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.MessageQueueing/CodeProject.LoggingManagement.MessageQueueing.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | false 5 | 6 | -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.MessageQueueing/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "CodeProject.LoggingManagement.MessageQueueing": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | } 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /LoggingManagement/CodeProject.LoggingManagement.MessageQueueing/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_LoggingManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "MessageQueueAppConfig": { 6 | "ExchangeName": "LoggingManagement_DEV", 7 | "RoutingKey": "ERP-DEV", 8 | "InboundMessageQueue": "LoggingManagement_DEV", 9 | "OutboundMessageQueues": "" 10 | }, 11 | "Logging": { 12 | "LogLevel": { 13 | "Default": "Information" 14 | } 15 | }, 16 | "AppConfig": { 17 | "TextToPrint": "This is from configuration" 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /MessageQueueing/CodeProject.MessageQueueing/CodeProject.MessageQueueing.csproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | false 5 | 6 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see http://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/.gitignore: -------------------------------------------------------------------------------- 1 | # See http://help.github.com/ignore-files/ for more about ignoring files. 2 | 3 | # compiled output 4 | /dist 5 | /tmp 6 | /out-tsc 7 | 8 | # dependencies 9 | /node_modules 10 | 11 | # IDEs and editors 12 | /.idea 13 | .project 14 | .classpath 15 | .c9/ 16 | *.launch 17 | .settings/ 18 | *.sublime-workspace 19 | 20 | # IDE - VSCode 21 | .vscode/* 22 | !.vscode/settings.json 23 | !.vscode/tasks.json 24 | !.vscode/launch.json 25 | !.vscode/extensions.json 26 | 27 | # misc 28 | /.sass-cache 29 | /connect.lock 30 | /coverage 31 | /libpeerconnection.log 32 | npm-debug.log 33 | yarn-error.log 34 | testem.log 35 | /typings 36 | 37 | # System Files 38 | .DS_Store 39 | Thumbs.db 40 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // Use IntelliSense to learn about possible attributes. 3 | // Hover to view descriptions of existing attributes. 4 | // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "attach to Chrome, with sourcemaps", 9 | "type": "chrome", 10 | "request": "attach", 11 | "url": "http://localhost:4200", 12 | "port": 9222, 13 | "sourceMaps": true, 14 | "trace": true, 15 | "webRoot": "${workspaceRoot}" 16 | } 17 | ] 18 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/CodeProject.Portal.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp2.1 5 | 2.8 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/About.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model AboutModel 3 | @{ 4 | ViewData["Title"] = "About"; 5 | } 6 |

@ViewData["Title"]

7 |

@Model.Message

8 | 9 |

Use this area to provide additional information.

10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/About.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.RazorPages; 6 | 7 | namespace CodeProject.Portal.Pages 8 | { 9 | public class AboutModel : PageModel 10 | { 11 | public string Message { get; set; } 12 | 13 | public void OnGet() 14 | { 15 | Message = "Your application description page."; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/Contact.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model ContactModel 3 | @{ 4 | ViewData["Title"] = "Contact"; 5 | } 6 |

@ViewData["Title"]

7 |

@Model.Message

8 | 9 |
10 | One Microsoft Way
11 | Redmond, WA 98052-6399
12 | P: 13 | 425.555.0100 14 |
15 | 16 |
17 | Support: Support@example.com
18 | Marketing: Marketing@example.com 19 |
20 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/Contact.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc.RazorPages; 6 | 7 | namespace CodeProject.Portal.Pages 8 | { 9 | public class ContactModel : PageModel 10 | { 11 | public string Message { get; set; } 12 | 13 | public void OnGet() 14 | { 15 | Message = "Your contact page."; 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/Error.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model ErrorModel 3 | @{ 4 | ViewData["Title"] = "Error"; 5 | } 6 | 7 |

Error.

8 |

An error occurred while processing your request.

9 | 10 | @if (Model.ShowRequestId) 11 | { 12 |

13 | Request ID: @Model.RequestId 14 |

15 | } 16 | 17 |

Development Mode

18 |

19 | Swapping to Development environment will display more detailed information about the error that occurred. 20 |

21 |

22 | Development environment should not be enabled in deployed applications, as it can result in sensitive information from exceptions being displayed to end users. For local debugging, development environment can be enabled by setting the ASPNETCORE_ENVIRONMENT environment variable to Development, and restarting the application. 23 |

24 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/Error.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Diagnostics; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore.Mvc; 7 | using Microsoft.AspNetCore.Mvc.RazorPages; 8 | 9 | namespace CodeProject.Portal.Pages 10 | { 11 | public class ErrorModel : PageModel 12 | { 13 | public string RequestId { get; set; } 14 | 15 | public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); 16 | 17 | [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] 18 | public void OnGet() 19 | { 20 | RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/Index.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | using Microsoft.AspNetCore.Mvc.RazorPages; 7 | 8 | namespace CodeProject.Portal.Pages 9 | { 10 | public class IndexModel : PageModel 11 | { 12 | public void OnGet() 13 | { 14 | 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/Privacy.cshtml: -------------------------------------------------------------------------------- 1 | @page 2 | @model PrivacyModel 3 | @{ 4 | ViewData["Title"] = "Privacy Policy"; 5 | } 6 |

@ViewData["Title"]

7 | 8 |

Use this page to detail your site's privacy policy.

-------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/Privacy.cshtml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.Mvc; 6 | using Microsoft.AspNetCore.Mvc.RazorPages; 7 | 8 | namespace CodeProject.Portal.Pages 9 | { 10 | public class PrivacyModel : PageModel 11 | { 12 | public void OnGet() 13 | { 14 | } 15 | } 16 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/_ViewImports.cshtml: -------------------------------------------------------------------------------- 1 | @using CodeProject.Portal 2 | @namespace CodeProject.Portal.Pages 3 | @addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers 4 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Pages/_ViewStart.cshtml: -------------------------------------------------------------------------------- 1 | @{ 2 | Layout = "_Layout"; 3 | } 4 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace CodeProject.Portal 12 | { 13 | public class Program 14 | { 15 | public static void Main(string[] args) 16 | { 17 | CreateWebHostBuilder(args).Build().Run(); 18 | } 19 | 20 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 21 | WebHost.CreateDefaultBuilder(args) 22 | .UseStartup(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "iisSettings": { 3 | "windowsAuthentication": false, 4 | "anonymousAuthentication": true, 5 | "iisExpress": { 6 | "applicationUrl": "http://localhost:57678", 7 | "sslPort": 44373 8 | } 9 | }, 10 | "profiles": { 11 | "IIS Express": { 12 | "commandName": "IISExpress", 13 | "launchBrowser": true, 14 | "environmentVariables": { 15 | "ASPNETCORE_ENVIRONMENT": "Development" 16 | } 17 | }, 18 | "CodeProject.Portal": { 19 | "commandName": "Project", 20 | "launchBrowser": true, 21 | "applicationUrl": "https://localhost:5001;http://localhost:5000", 22 | "environmentVariables": { 23 | "ASPNETCORE_ENVIRONMENT": "Development" 24 | } 25 | } 26 | } 27 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Debug", 5 | "System": "Information", 6 | "Microsoft": "Information" 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "Logging": { 3 | "LogLevel": { 4 | "Default": "Warning" 5 | } 6 | }, 7 | "AllowedHosts": "*" 8 | } 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/e2e/protractor.conf.js: -------------------------------------------------------------------------------- 1 | // Protractor configuration file, see link for more information 2 | // https://github.com/angular/protractor/blob/master/lib/config.ts 3 | 4 | const { SpecReporter } = require('jasmine-spec-reporter'); 5 | 6 | exports.config = { 7 | allScriptsTimeout: 11000, 8 | specs: [ 9 | './src/**/*.e2e-spec.ts' 10 | ], 11 | capabilities: { 12 | 'browserName': 'chrome' 13 | }, 14 | directConnect: true, 15 | baseUrl: 'http://localhost:4200/', 16 | framework: 'jasmine', 17 | jasmineNodeOpts: { 18 | showColors: true, 19 | defaultTimeoutInterval: 30000, 20 | print: function() {} 21 | }, 22 | onPrepare() { 23 | require('ts-node').register({ 24 | project: require('path').join(__dirname, './tsconfig.e2e.json') 25 | }); 26 | jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } })); 27 | } 28 | }; -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/e2e/src/app.e2e-spec.ts: -------------------------------------------------------------------------------- 1 | import { AppPage } from './app.po'; 2 | 3 | describe('workspace-project App', () => { 4 | let page: AppPage; 5 | 6 | beforeEach(() => { 7 | page = new AppPage(); 8 | }); 9 | 10 | it('should display welcome message', () => { 11 | page.navigateTo(); 12 | expect(page.getParagraphText()).toEqual('Welcome to CodeProjectPortal!'); 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/e2e/src/app.po.ts: -------------------------------------------------------------------------------- 1 | import { browser, by, element } from 'protractor'; 2 | 3 | export class AppPage { 4 | navigateTo() { 5 | return browser.get('/'); 6 | } 7 | 8 | getParagraphText() { 9 | return element(by.css('app-root h1')).getText(); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/e2e/tsconfig.e2e.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/account-management/account-management.routing.ts: -------------------------------------------------------------------------------- 1 | import { LoginComponent } from './login/login.component'; 2 | import { RegisterComponent } from './register/register.component'; 3 | import { NgModule } from '@angular/core'; 4 | import { Routes, RouterModule } from '@angular/router'; 5 | 6 | const AccountManagementRoutes: Routes = [ 7 | { path: '', component: LoginComponent }, 8 | { path: 'account-login', component: LoginComponent}, 9 | { path: 'account-register', component: RegisterComponent } 10 | ]; 11 | 12 | @NgModule({ 13 | imports: [ 14 | RouterModule.forChild(AccountManagementRoutes) 15 | ], 16 | exports: [RouterModule] 17 | }) 18 | export class AccountManagementRoutingModule { } 19 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/account-management/login/login.component.css: -------------------------------------------------------------------------------- 1 | mat-form-field { 2 | width: 300px; 3 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/account-management/login/login.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { LoginComponent } from './login.component'; 7 | 8 | describe('LoginComponent', () => { 9 | let component: LoginComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ LoginComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(LoginComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/account-management/register/register.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/account-management/register/register.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/account-management/register/register.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { RegisterComponent } from './register.component'; 7 | 8 | describe('RegisterComponent', () => { 9 | let component: RegisterComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ RegisterComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(RegisterComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/account-management/view-models/user-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { UserViewModel } from '../../shared-view-models/user.viewmodel'; 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | 5 | export class UserViewModelResponse extends ResponseModel { 6 | public entity: UserViewModel; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/app.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/app.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/about/about.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/home-directory/about/about.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/about/about.component.html: -------------------------------------------------------------------------------- 1 |

2 | about works! 3 |

4 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/about/about.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { AboutComponent } from './about.component'; 7 | 8 | describe('AboutComponent', () => { 9 | let component: AboutComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ AboutComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(AboutComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/about/about.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-about', 5 | templateUrl: './about.component.html', 6 | styleUrls: ['./about.component.css'] 7 | }) 8 | export class AboutComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/contact/contact.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/home-directory/contact/contact.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/contact/contact.component.html: -------------------------------------------------------------------------------- 1 |

2 | contact works! 3 |

4 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/contact/contact.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { ContactComponent } from './contact.component'; 7 | 8 | describe('ContactComponent', () => { 9 | let component: ContactComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ ContactComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(ContactComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/contact/contact.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-contact', 5 | templateUrl: './contact.component.html', 6 | styleUrls: ['./contact.component.css'] 7 | }) 8 | export class ContactComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/home/home.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/home-directory/home/home.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/home/home.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
6 | 7 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/home/home.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { HomeComponent } from './home.component'; 7 | 8 | describe('HomeComponent', () => { 9 | let component: HomeComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ HomeComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(HomeComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/home-directory/home/home.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-home', 5 | templateUrl: './home.component.html', 6 | styleUrls: ['./home.component.css'] 7 | }) 8 | export class HomeComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/inventory-management-nav-bar/inventory-management-nav-bar.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/inventory-management/inventory-management-nav-bar/inventory-management-nav-bar.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/inventory-management-nav-bar/inventory-management-nav-bar.component.ts: -------------------------------------------------------------------------------- 1 | import { Component, OnInit } from '@angular/core'; 2 | 3 | @Component({ 4 | selector: 'app-inventory-management-nav-bar', 5 | templateUrl: './inventory-management-nav-bar.component.html', 6 | styleUrls: ['./inventory-management-nav-bar.component.css'] 7 | }) 8 | export class InventoryManagementNavBarComponent implements OnInit { 9 | 10 | constructor() { } 11 | 12 | ngOnInit() { 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/product-inquiry/product-inquiry.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/product-inquiry/product-inquiry.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { ProductInquiryComponent } from './product-inquiry.component'; 7 | 8 | describe('ProductInquiryComponent', () => { 9 | let component: ProductInquiryComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ ProductInquiryComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(ProductInquiryComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/product-maintenance/product-maintenance.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/inventory-management/product-maintenance/product-maintenance.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/product-maintenance/product-maintenance.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { ProductMaintenanceComponent } from './product-maintenance.component'; 7 | 8 | describe('ProductMaintenanceComponent', () => { 9 | let component: ProductMaintenanceComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ ProductMaintenanceComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(ProductMaintenanceComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/purchase-order-inquiry/purchase-order-inquiry.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/purchase-order-receiving/purchase-order-receiving.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/sales-order-inquiry/sales-order-inquiry.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/sales-order-inquiry/sales-order-inquiry.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { SalesOrderInquiryComponent } from './sales-order-inquiry.component'; 7 | 8 | describe('SalesOrderInquiryComponent', () => { 9 | let component: SalesOrderInquiryComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ SalesOrderInquiryComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(SalesOrderInquiryComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/sales-order-shipments/sales-order-shipments.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/sales-order-shipments/sales-order-shipments.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { SalesOrderShipmentsComponent } from './sales-order-shipments.component'; 7 | 8 | describe('SalesOrderShipmentsComponent', () => { 9 | let component: SalesOrderShipmentsComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ SalesOrderShipmentsComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(SalesOrderShipmentsComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/upload-product-master/upload-product-master.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/inventory-management/upload-product-master/upload-product-master.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/upload-product-master/upload-product-master.component.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

Upload Product Master

7 |
8 |
9 | 10 | 11 | 12 | 13 | 14 |
15 |    16 | 17 | 18 | 19 |
20 | 21 |
-------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/upload-product-master/upload-product-master.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { UploadProductMasterComponent } from './upload-product-master.component'; 7 | 8 | describe('UploadProductMasterComponent', () => { 9 | let component: UploadProductMasterComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ UploadProductMasterComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(UploadProductMasterComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/product-inquiry-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | import { ProductViewModel } from './product.viewmodel'; 5 | 6 | export class ProductInquiryViewModelResponse extends ResponseModel { 7 | public entity: Array; 8 | } 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/product-inquiry.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ProductViewModel } from './product.viewmodel'; 3 | 4 | export class ProductInquiryViewModel { 5 | public productNumber: string; 6 | public currentPageNumber: number; 7 | public currentPageIndex: number; 8 | public pageSize: number; 9 | public sortDirection: string; 10 | public sortExpression: string; 11 | public totalPages: number; 12 | public totalProducts: number; 13 | public products: Array; 14 | public displayedColumns: Array; 15 | public pageSizeOptions: Array; 16 | } 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/product-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { ProductViewModel } from './product.viewmodel'; 4 | 5 | export class ProductViewModelResponse extends ResponseModel { 6 | public entity: ProductViewModel; 7 | } 8 | 9 | 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/product.viewmodel.ts: -------------------------------------------------------------------------------- 1 | export class ProductViewModel { 2 | public productId: number; 3 | public productNumber: string; 4 | public description: string; 5 | public binLocation: string; 6 | public unitPrice: number; 7 | } 8 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/purchase-order-detail-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { PurchaseOrderDetailViewModel } from './purchase-order-detail.viewmodel'; 4 | 5 | export class PurchaseOrderDetailViewModelResponse extends ResponseModel { 6 | public entity: PurchaseOrderDetailViewModel; 7 | } 8 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/purchase-order-inquiry-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { PurchaseOrderViewModel } from './purchase-order.viewmodel'; 4 | 5 | export class PurchaseOrderInquiryViewModelResponse extends ResponseModel { 6 | public entity: Array; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/purchase-order-inquiry.viewmodel.ts: -------------------------------------------------------------------------------- 1 | import { PurchaseOrderViewModel } from '../view-models/purchase-order.viewmodel'; 2 | 3 | export class PurchaseOrderInquiryViewModel { 4 | public supplierName: string; 5 | public currentPageNumber: number; 6 | public currentPageIndex: number; 7 | public pageSize: number; 8 | public sortDirection: string; 9 | public sortExpression: string; 10 | public totalPages: number; 11 | public totalPurchaseOrders: number; 12 | public purchaseOrders: Array; 13 | public displayedColumns: Array; 14 | public pageSizeOptions: Array; 15 | } 16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/purchase-order-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | import { PurchaseOrderViewModel } from './purchase-order.viewmodel'; 5 | 6 | export class PurchaseOrderViewModelResponse extends ResponseModel { 7 | public entity: PurchaseOrderViewModel; 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/sales-order-detail-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | import { SalesOrderDetailViewModel } from './sales-order-detail.viewmodel'; 5 | 6 | export class SalesOrderDetailViewModelResponse extends ResponseModel { 7 | public entity: SalesOrderDetailViewModel; 8 | } 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/sales-order-inquiry-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | import { SalesOrderViewModel } from './sales-order.viewmodel'; 5 | 6 | export class SalesOrderInquiryViewModelResponse extends ResponseModel { 7 | public entity: Array; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/sales-order-inquiry.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { SalesOrderViewModel } from '../view-models/sales-order.viewmodel'; 3 | 4 | export class SalesOrderInquiryViewModel { 5 | public customerName: string; 6 | public currentPageNumber: number; 7 | public currentPageIndex: number; 8 | public pageSize: number; 9 | public sortDirection: string; 10 | public sortExpression: string; 11 | public totalPages: number; 12 | public totalSalesOrders: number; 13 | public salesOrders: Array; 14 | public displayedColumns: Array; 15 | public pageSizeOptions: Array; 16 | } 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/inventory-management/view-models/sales-order-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { SalesOrderViewModel } from './sales-order.viewmodel'; 4 | 5 | export class SalesOrderViewModelResponse extends ResponseModel { 6 | public entity: SalesOrderViewModel; 7 | } 8 | 9 | 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/main-nav/main-nav.component.css: -------------------------------------------------------------------------------- 1 | .sidenav-container { 2 | height: 100%; 3 | } 4 | 5 | .sidenav { 6 | width: 200px; 7 | } 8 | 9 | .mat-toolbar.mat-primary { 10 | position: sticky; 11 | top: 0; 12 | } 13 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/main-nav/main-nav.component.spec.ts: -------------------------------------------------------------------------------- 1 | 2 | import { fakeAsync, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { MatSidenavModule } from '@angular/material/sidenav'; 4 | import { MainNavComponent } from './main-nav.component'; 5 | 6 | describe('MainNavComponent', () => { 7 | let component: MainNavComponent; 8 | let fixture: ComponentFixture; 9 | 10 | beforeEach(fakeAsync(() => { 11 | TestBed.configureTestingModule({ 12 | imports: [MatSidenavModule], 13 | declarations: [MainNavComponent] 14 | }) 15 | .compileComponents(); 16 | 17 | fixture = TestBed.createComponent(MainNavComponent); 18 | component = fixture.componentInstance; 19 | fixture.detectChanges(); 20 | })); 21 | 22 | it('should compile', () => { 23 | expect(component).toBeTruthy(); 24 | }); 25 | }); 26 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/main-nav/main-nav.component.ts: -------------------------------------------------------------------------------- 1 | import { Component } from '@angular/core'; 2 | import { BreakpointObserver, Breakpoints, BreakpointState } from '@angular/cdk/layout'; 3 | import { Observable } from 'rxjs'; 4 | import { map } from 'rxjs/operators'; 5 | 6 | @Component({ 7 | selector: 'app-main-nav', 8 | templateUrl: './main-nav.component.html', 9 | styleUrls: ['./main-nav.component.css'] 10 | }) 11 | export class MainNavComponent { 12 | 13 | isHandset$: Observable = this.breakpointObserver.observe(Breakpoints.Handset) 14 | .pipe( 15 | map(result => result.matches) 16 | ); 17 | constructor(private breakpointObserver: BreakpointObserver) {} 18 | 19 | } 20 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-inquiry/purchase-order-inquiry.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-maintenance/delete-purchase-order-lineitem-dialog.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-maintenance/delete-purchase-order-lineitem-dialog.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-maintenance/delete-purchase-order-lineitem-dialog.html: -------------------------------------------------------------------------------- 1 |

{{data.title}}

2 |
3 |

Are you sure you want to Delete this line item?

4 | 5 | 6 |   7 | 8 | 9 | 10 |   11 | 12 | 13 | 14 | 15 |
16 |
17 | 18 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-maintenance/purchase-order-maintenance.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-maintenance/submit-purchase-order-dialog.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-maintenance/submit-purchase-order-dialog.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-maintenance/submit-purchase-order-dialog.html: -------------------------------------------------------------------------------- 1 |

{{data.title}}

2 |
3 |

Are you sure you want to Submit this Purchase Order

4 | 5 | 6 |   7 | 8 | 9 | 10 |   11 |
12 |
13 | 14 | 15 |
16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-management-nav-bar/purchase-order-management-nav-bar.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-management-nav-bar/purchase-order-management-nav-bar.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/purchase-order-management-nav-bar/purchase-order-management-nav-bar.component.ts: -------------------------------------------------------------------------------- 1 | 2 | import { Component, OnInit } from '@angular/core'; 3 | 4 | @Component({ 5 | selector: 'app-purchase-order-management-nav-bar', 6 | templateUrl: './purchase-order-management-nav-bar.component.html', 7 | styleUrls: ['./purchase-order-management-nav-bar.component.css'] 8 | }) 9 | export class PurchaseOrderManagementNavBarComponent implements OnInit { 10 | 11 | constructor() { } 12 | 13 | ngOnInit() { 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/supplier-inquiry/supplier-inquiry.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/supplier-inquiry/supplier-inquiry.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { SupplierInquiryComponent } from './supplier-inquiry.component'; 7 | 8 | describe('SupplierInquiryComponent', () => { 9 | let component: SupplierInquiryComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ SupplierInquiryComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(SupplierInquiryComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/supplier-maintenance/supplier-maintenance.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/purchase-order-management/supplier-maintenance/supplier-maintenance.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/supplier-maintenance/supplier-maintenance.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { SupplierMaintenanceComponent } from './supplier-maintenance.component'; 7 | 8 | describe('SupplierMaintenanceComponent', () => { 9 | let component: SupplierMaintenanceComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ SupplierMaintenanceComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(SupplierMaintenanceComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/product-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | import { ProductViewModel } from './product.viewmodel'; 5 | 6 | export class ProductViewModelResponse extends ResponseModel { 7 | public entity: ProductViewModel; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/product.viewmodel.ts: -------------------------------------------------------------------------------- 1 | export class ProductViewModel { 2 | public accountId: number; 3 | public productId: number; 4 | public productMasterId: number; 5 | public productNumber: string; 6 | public description: string; 7 | public unitPrice: number; 8 | public orderQuantity: number; 9 | } 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/purchase-order-detail-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { PurchaseOrderDetailViewModel } from './purchase-order-detail.viewmodel'; 4 | 5 | export class PurchaseOrderDetailViewModelResponse extends ResponseModel { 6 | public entity: PurchaseOrderDetailViewModel; 7 | } 8 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/purchase-order-detail.viewmodel.ts: -------------------------------------------------------------------------------- 1 | export class PurchaseOrderDetailViewModel { 2 | public purchaseOrderDetailId: number; 3 | public purchaseOrderId: number; 4 | public productId: number; 5 | public productMasterId: number; 6 | public productNumber: string; 7 | public productDescription: string; 8 | public unitPrice: number; 9 | public unitPriceFormatted: string; 10 | public orderQuantity: number; 11 | public orderTotal: number; 12 | public orderQuantityFormatted: string; 13 | public dateCreated: Date; 14 | public dateUpdated: Date; 15 | public editQuantity: Boolean; 16 | public editUnitPrice: Boolean; 17 | public editProductNumber: Boolean; 18 | public editMode: Boolean; 19 | public disableSaveButton: Boolean; 20 | public disableEditButton: Boolean; 21 | public disableAddButton: Boolean; 22 | public disableCancelButton: Boolean; 23 | public disableDeleteButton: Boolean; 24 | } 25 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/purchase-order-inquiry-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | import { PurchaseOrderViewModel } from './purchase-order.viewmodel'; 5 | 6 | export class PurchaseOrderInquiryViewModelResponse extends ResponseModel { 7 | public entity: Array; 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/purchase-order-inquiry.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { PurchaseOrderViewModel } from '../view-models/purchase-order.viewmodel'; 3 | 4 | export class PurchaseOrderInquiryViewModel { 5 | public supplierName: string; 6 | public currentPageNumber: number; 7 | public currentPageIndex: number; 8 | public pageSize: number; 9 | public sortDirection: string; 10 | public sortExpression: string; 11 | public totalPages: number; 12 | public totalPurchaseOrders: number; 13 | public purchaseOrders: Array; 14 | public displayedColumns: Array; 15 | public pageSizeOptions: Array; 16 | } 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/purchase-order-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | import { PurchaseOrderViewModel } from './purchase-order.viewmodel'; 5 | 6 | export class PurchaseOrderViewModelResponse extends ResponseModel { 7 | public entity: PurchaseOrderViewModel; 8 | } 9 | 10 | 11 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/supplier-inquiry-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { SupplierViewModel } from './supplier.viewmodel'; 4 | 5 | export class SupplierInquiryViewModelResponse extends ResponseModel { 6 | public entity: Array; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/supplier-inquiry.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { SupplierViewModel } from '../view-models/supplier.viewmodel'; 3 | 4 | export class SupplierInquiryViewModel { 5 | public supplierName: string; 6 | public currentPageNumber: number; 7 | public currentPageIndex: number; 8 | public pageSize: number; 9 | public sortDirection: string; 10 | public sortExpression: string; 11 | public totalPages: number; 12 | public totalSuppliers: number; 13 | public suppliers: Array; 14 | public displayedColumns: Array; 15 | public pageSizeOptions: Array; 16 | } 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/supplier-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { SupplierViewModel } from './supplier.viewmodel'; 4 | 5 | export class SupplierViewModelResponse extends ResponseModel { 6 | public entity: SupplierViewModel; 7 | } 8 | 9 | 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/purchase-order-management/view-models/supplier.viewmodel.ts: -------------------------------------------------------------------------------- 1 | export class SupplierViewModel { 2 | public supplierId: number; 3 | public supplierName: string; 4 | public addressLine1: string; 5 | public addressLine2: string; 6 | public city: string; 7 | public region: string; 8 | public postalCode: string; 9 | } 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/customer-inquiry/customer-inquiry.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/customer-inquiry/customer-inquiry.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { CustomerInquiryComponent } from './customer-inquiry.component'; 7 | 8 | describe('CustomerInquiryComponent', () => { 9 | let component: CustomerInquiryComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ CustomerInquiryComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(CustomerInquiryComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/customer-maintenance/customer-maintenance.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/sales-order-management/customer-maintenance/customer-maintenance.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/customer-maintenance/customer-maintenance.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { CustomerMaintenanceComponent } from './customer-maintenance.component'; 7 | 8 | describe('CustomerMaintenanceComponent', () => { 9 | let component: CustomerMaintenanceComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ CustomerMaintenanceComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(CustomerMaintenanceComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-inquiry/sales-order-inquiry.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-inquiry/sales-order-inquiry.component.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | import { async, ComponentFixture, TestBed } from '@angular/core/testing'; 3 | import { By } from '@angular/platform-browser'; 4 | import { DebugElement } from '@angular/core'; 5 | 6 | import { SalesOrderInquiryComponent } from './sales-order-inquiry.component'; 7 | 8 | describe('SalesOrderInquiryComponent', () => { 9 | let component: SalesOrderInquiryComponent; 10 | let fixture: ComponentFixture; 11 | 12 | beforeEach(async(() => { 13 | TestBed.configureTestingModule({ 14 | declarations: [ SalesOrderInquiryComponent ] 15 | }) 16 | .compileComponents(); 17 | })); 18 | 19 | beforeEach(() => { 20 | fixture = TestBed.createComponent(SalesOrderInquiryComponent); 21 | component = fixture.componentInstance; 22 | fixture.detectChanges(); 23 | }); 24 | 25 | it('should create', () => { 26 | expect(component).toBeTruthy(); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-maintenance/delete-sales-order-lineitem-dialog.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-maintenance/delete-sales-order-lineitem-dialog.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-maintenance/delete-sales-order-lineitem-dialog.html: -------------------------------------------------------------------------------- 1 |

{{data.title}}

2 |
3 |

Are you sure you want to Delete this line item?

4 | 5 | 6 |   7 | 8 | 9 | 10 |   11 | 12 | 13 | 14 | 15 |
16 |
17 | 18 | 19 |
20 | 21 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-maintenance/sales-order-maintenance.component.css: -------------------------------------------------------------------------------- 1 | table { 2 | width: 100%; 3 | } 4 | 5 | .highlight{ 6 | background: #42A948; /* green */ 7 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-maintenance/submit-sales-order-dialog.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-maintenance/submit-sales-order-dialog.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-maintenance/submit-sales-order-dialog.html: -------------------------------------------------------------------------------- 1 |

{{data.title}}

2 |
3 |

Are you sure you want to Submit this Sales Order

4 | 5 | 6 |   7 | 8 | 9 | 10 |   11 |
12 |
13 | 14 | 15 |
16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-management-nav-bar/sales-order-management-nav-bar.component.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-management-nav-bar/sales-order-management-nav-bar.component.css -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/sales-order-management-nav-bar/sales-order-management-nav-bar.component.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { Component, OnInit } from '@angular/core'; 4 | 5 | @Component({ 6 | selector: 'app-sales-order-management-nav-bar', 7 | templateUrl: './sales-order-management-nav-bar.component.html', 8 | styleUrls: ['./sales-order-management-nav-bar.component.css'] 9 | }) 10 | export class SalesOrderManagementNavBarComponent implements OnInit { 11 | 12 | constructor() { } 13 | 14 | ngOnInit() { 15 | } 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/customer-inquiry-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { CustomerViewModel } from './customer.viewmodel'; 4 | 5 | export class CustomerInquiryViewModelResponse extends ResponseModel { 6 | public entity: Array; 7 | } 8 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/customer-inquiry.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { CustomerViewModel } from '../view-models/customer.viewmodel'; 3 | 4 | export class CustomerInquiryViewModel { 5 | public customerName: string; 6 | public currentPageNumber: number; 7 | public currentPageIndex: number; 8 | public pageSize: number; 9 | public sortDirection: string; 10 | public sortExpression: string; 11 | public totalPages: number; 12 | public totalCustomers: number; 13 | public customers: Array; 14 | public displayedColumns: Array; 15 | public pageSizeOptions: Array; 16 | } 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/customer-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { CustomerViewModel } from './customer.viewmodel'; 4 | 5 | export class CustomerViewModelResponse extends ResponseModel { 6 | public entity: CustomerViewModel; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/customer.viewmodel.ts: -------------------------------------------------------------------------------- 1 | export class CustomerViewModel { 2 | public customerId: number; 3 | public customerName: string; 4 | public addressLine1: string; 5 | public addressLine2: string; 6 | public city: string; 7 | public region: string; 8 | public postalCode: string; 9 | } 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/product-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { ProductViewModel } from './product.viewmodel'; 4 | 5 | export class ProductViewModelResponse extends ResponseModel { 6 | public entity: ProductViewModel; 7 | } 8 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/product.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | export class ProductViewModel { 3 | public accountId: number; 4 | public productId: number; 5 | public productMasterId: number; 6 | public productNumber: string; 7 | public description: string; 8 | public unitPrice: number; 9 | public orderQuantity: number; 10 | } 11 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/sales-order-detail-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { SalesOrderDetailViewModel } from './sales-order-detail.viewmodel'; 4 | 5 | export class SalesOrderDetailViewModelResponse extends ResponseModel { 6 | public entity: SalesOrderDetailViewModel; 7 | } 8 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/sales-order-detail.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | export class SalesOrderDetailViewModel { 3 | public salesOrderDetailId: number; 4 | public salesOrderId: number; 5 | public productId: number; 6 | public productMasterId: number; 7 | public productNumber: string; 8 | public productDescription: string; 9 | public unitPrice: number; 10 | public unitPriceFormatted: string; 11 | public orderQuantity: number; 12 | public shippedQuantity: number; 13 | public orderTotal: number; 14 | public orderQuantityFormatted: string; 15 | public shippedQuantityFormatted: string; 16 | public dateCreated: Date; 17 | public dateUpdated: Date; 18 | public editQuantity: Boolean; 19 | public editUnitPrice: Boolean; 20 | public editProductNumber: Boolean; 21 | public editMode: Boolean; 22 | public disableSaveButton: Boolean; 23 | public disableEditButton: Boolean; 24 | public disableAddButton: Boolean; 25 | public disableCancelButton: Boolean; 26 | public disableDeleteButton: Boolean; 27 | } 28 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/sales-order-inquiry-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | import { ResponseModel } from '../../shared-models/response.model'; 4 | import { SalesOrderViewModel } from './sales-order.viewmodel'; 5 | 6 | export class SalesOrderInquiryViewModelResponse extends ResponseModel { 7 | public entity: Array; 8 | } 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/sales-order-inquiry.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { SalesOrderViewModel } from '../view-models/sales-order.viewmodel'; 3 | 4 | export class SalesOrderInquiryViewModel { 5 | public customerName: string; 6 | public currentPageNumber: number; 7 | public currentPageIndex: number; 8 | public pageSize: number; 9 | public sortDirection: string; 10 | public sortExpression: string; 11 | public totalPages: number; 12 | public totalSalesOrders: number; 13 | public salesOrders: Array; 14 | public displayedColumns: Array; 15 | public pageSizeOptions: Array; 16 | } 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/sales-order-management/view-models/sales-order-response.viewmodel.ts: -------------------------------------------------------------------------------- 1 | 2 | import { ResponseModel } from '../../shared-models/response.model'; 3 | import { SalesOrderViewModel } from './sales-order.viewmodel'; 4 | 5 | export class SalesOrderViewModelResponse extends ResponseModel { 6 | public entity: SalesOrderViewModel; 7 | } 8 | 9 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/shared-components-services/alert.service.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async, inject } from '@angular/core/testing'; 4 | import { AlertService } from './alert.service'; 5 | 6 | describe('Service: Alert', () => { 7 | beforeEach(() => { 8 | TestBed.configureTestingModule({ 9 | providers: [AlertService] 10 | }); 11 | }); 12 | 13 | it('should ...', inject([AlertService], (service: AlertService) => { 14 | expect(service).toBeTruthy(); 15 | })); 16 | }); 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/shared-components-services/http-interceptor.service.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async, inject } from '@angular/core/testing'; 4 | import { HttpInterceptorService } from './http-interceptor.service'; 5 | 6 | describe('Service: HttpInterceptor', () => { 7 | beforeEach(() => { 8 | TestBed.configureTestingModule({ 9 | providers: [HttpInterceptorService] 10 | }); 11 | }); 12 | 13 | it('should ...', inject([HttpInterceptorService], (service: HttpInterceptorService) => { 14 | expect(service).toBeTruthy(); 15 | })); 16 | }); 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/shared-components-services/http.service.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async, inject } from '@angular/core/testing'; 4 | import { HttpService } from './http.service'; 5 | 6 | describe('Service: Http', () => { 7 | beforeEach(() => { 8 | TestBed.configureTestingModule({ 9 | providers: [HttpService] 10 | }); 11 | }); 12 | 13 | it('should ...', inject([HttpService], (service: HttpService) => { 14 | expect(service).toBeTruthy(); 15 | })); 16 | }); 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/shared-components-services/session.service.spec.ts: -------------------------------------------------------------------------------- 1 | /* tslint:disable:no-unused-variable */ 2 | 3 | import { TestBed, async, inject } from '@angular/core/testing'; 4 | import { SessionService } from './session.service'; 5 | 6 | describe('Service: Session', () => { 7 | beforeEach(() => { 8 | TestBed.configureTestingModule({ 9 | providers: [SessionService] 10 | }); 11 | }); 12 | 13 | it('should ...', inject([SessionService], (service: SessionService) => { 14 | expect(service).toBeTruthy(); 15 | })); 16 | }); 17 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/shared-models/appsettings.model.ts: -------------------------------------------------------------------------------- 1 | export class AppSettings { 2 | public accountManagementWebApiUrl: string; 3 | public inventoryManagementWebApiUrl: string; 4 | public purchaseOrderManagementWebApiUrl: string; 5 | public salesOrderManagementWebApiUrl: string; 6 | } 7 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/shared-models/response.model.ts: -------------------------------------------------------------------------------- 1 | 2 | export class ResponseModel { 3 | public returnStatus: Boolean; 4 | public returnMessage: string[]; 5 | public errors: any[]; 6 | public totalPages: number; 7 | public totalRows: number; 8 | public pageSize: number; 9 | public isAuthenicated: Boolean; 10 | public sortExpression: string; 11 | public sortDirection: string; 12 | public currentPageNumber: number; 13 | } 14 | 15 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/shared-models/user.model.ts: -------------------------------------------------------------------------------- 1 | export class UserModel { 2 | public userId: number; 3 | public firstName: string; 4 | public lastName: string; 5 | public companyName: string; 6 | public emailAddress: string; 7 | public password: string; 8 | public passwordConfirmation: string; 9 | } 10 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/app/shared-view-models/user.viewmodel.ts: -------------------------------------------------------------------------------- 1 | export class UserViewModel { 2 | public userId: number; 3 | public firstName: string; 4 | public lastName: string; 5 | public companyName: string; 6 | public emailAddress: string; 7 | public password: string; 8 | public passwordConfirmation: string; 9 | public token: string; 10 | public tokenExpirationDate: Date; 11 | public isAuthenicated: Boolean; 12 | 13 | } 14 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/assets/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/assets/.gitkeep -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/assets/homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/assets/homepage.png -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/browserslist: -------------------------------------------------------------------------------- 1 | # This file is currently used by autoprefixer to adjust CSS to support the below specified browsers 2 | # For additional information regarding the format and rule options, please see: 3 | # https://github.com/browserslist/browserslist#queries 4 | # For IE 9-11 support, please uncomment the last line of the file and adjust as needed 5 | > 0.5% 6 | last 2 versions 7 | Firefox ESR 8 | not dead 9 | # IE 9-11 -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/environments/environment.ts: -------------------------------------------------------------------------------- 1 | // This file can be replaced during build by using the `fileReplacements` array. 2 | // `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`. 3 | // The list of file replacements can be found in `angular.json`. 4 | 5 | export const environment = { 6 | production: false 7 | }; 8 | 9 | /* 10 | * In development mode, to ignore zone related error stack frames such as 11 | * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can 12 | * import the following file, but please comment it out in production mode 13 | * because it will have performance impact when throw error 14 | */ 15 | // import 'zone.js/dist/zone-error'; // Included with Angular CLI. 16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/src/favicon.ico -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MicroServices Portal 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/main.ts: -------------------------------------------------------------------------------- 1 | import { enableProdMode } from '@angular/core'; 2 | import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 3 | 4 | import { AppModule } from './app/app.module'; 5 | import { environment } from './environments/environment'; 6 | 7 | import 'hammerjs'; 8 | 9 | if (environment.production) { 10 | enableProdMode(); 11 | } 12 | 13 | platformBrowserDynamic().bootstrapModule(AppModule) 14 | .catch(err => console.log(err)); 15 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/start-website.bat: -------------------------------------------------------------------------------- 1 | ng serve 2 | pause 3 | 4 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/test.ts: -------------------------------------------------------------------------------- 1 | // This file is required by karma.conf.js and loads recursively all the .spec and framework files 2 | 3 | import 'zone.js/dist/zone-testing'; 4 | import { getTestBed } from '@angular/core/testing'; 5 | import { 6 | BrowserDynamicTestingModule, 7 | platformBrowserDynamicTesting 8 | } from '@angular/platform-browser-dynamic/testing'; 9 | 10 | declare const require: any; 11 | 12 | // First, initialize the Angular testing environment. 13 | getTestBed().initTestEnvironment( 14 | BrowserDynamicTestingModule, 15 | platformBrowserDynamicTesting() 16 | ); 17 | // Then we find all the tests. 18 | const context = require.context('./', true, /\.spec\.ts$/); 19 | // And load the modules. 20 | context.keys().map(context); 21 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/app", 5 | "module": "es2015", 6 | "types": [], 7 | "experimentalDecorators": true 8 | }, 9 | "exclude": [ 10 | "src/test.ts", 11 | "**/*.spec.ts" 12 | ] 13 | } 14 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "experimentalDecorators": true, 4 | "emitDecoratorMetadata": true, 5 | } 6 | } -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/tsconfig.spec.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../out-tsc/spec", 5 | "module": "commonjs", 6 | "types": [ 7 | "jasmine", 8 | "node" 9 | ], 10 | "experimentalDecorators": true 11 | }, 12 | "files": [ 13 | "test.ts", 14 | "polyfills.ts" 15 | ], 16 | "include": [ 17 | "**/*.spec.ts", 18 | "**/*.d.ts" 19 | ] 20 | } 21 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/src/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "app", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "app", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compileOnSave": false, 3 | "compilerOptions": { 4 | "baseUrl": "./", 5 | "outDir": "./dist/out-tsc", 6 | "sourceMap": true, 7 | "declaration": false, 8 | "moduleResolution": "node", 9 | "emitDecoratorMetadata": true, 10 | "experimentalDecorators": true, 11 | "target": "es5", 12 | "typeRoots": [ 13 | "node_modules/@types" 14 | ], 15 | "lib": [ 16 | "es2017", 17 | "dom" 18 | ] 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/wwwroot/assets/homepage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/wwwroot/assets/homepage.png -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/wwwroot/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Portal/CodeProject.Portal/wwwroot/favicon.ico -------------------------------------------------------------------------------- /Portal/CodeProject.Portal/wwwroot/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MicroServices Portal 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.BusinessRules/CodeProject.PurchaseOrderManagement.BusinessRules.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/CodeProject.PurchaseOrderManagement.Data.Models.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/Product.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class Product 8 | { 9 | public int AccountId { get; set; } 10 | public int ProductId { get; set; } 11 | public int ProductMasterId { get; set; } 12 | public string ProductNumber { get; set; } 13 | public string Description { get; set; } 14 | public string BinLocation { get; set; } 15 | public double UnitPrice { get; set; } 16 | public int OnOrderQuantity { get; set; } 17 | public DateTime DateCreated { get; set; } 18 | public DateTime DateUpdated { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/PurchaseOrder.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class PurchaseOrder 8 | { 9 | public int PurchaseOrderId { get; set; } 10 | public int PurchaseOrderNumber { get; set; } 11 | public int AccountId { get; set; } 12 | public int SupplierId { get; set; } 13 | public double OrderTotal { get; set; } 14 | public int PurchaseOrderStatusId { get; set; } 15 | public Supplier Supplier { get; set; } 16 | public PurchaseOrderStatus PurchaseOrderStatus { get; set; } 17 | public DateTime DateCreated { get; set; } 18 | public DateTime DateUpdated { get; set; } 19 | public List PurchaseOrderDetails { get; set; } 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/PurchaseOrderDetail.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class PurchaseOrderDetail 8 | { 9 | public int PurchaseOrderDetailId { get; set; } 10 | public int PurchaseOrderId { get; set; } 11 | public int ProductId { get; set; } 12 | public double UnitPrice { get; set; } 13 | public int OrderQuantity { get; set; } 14 | public int ReceiviedQuantity { get; set; } 15 | public DateTime DateCreated { get; set; } 16 | public DateTime DateUpdated { get; set; } 17 | public Product Product { get; set; } 18 | public PurchaseOrder PurchaseOrder { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/PurchaseOrderNumberSequence.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class PurchaseOrderNumberSequence 8 | { 9 | public int PurchaseOrderNumberSequenceId { get; set; } 10 | public int AccountId { get; set; } 11 | public int PurchaseOrderNumber { get; set; } 12 | public DateTime DateCreated { get; set; } 13 | public DateTime DateUpdated { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/PurchaseOrderStatus.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class PurchaseOrderStatus 8 | { 9 | public int PurchaseOrderStatusId { get; set; } 10 | public string Description { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/Supplier.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class Supplier 8 | { 9 | public int SupplierId { get; set; } 10 | public int AccountId { get; set; } 11 | public string Name { get; set; } 12 | public string AddressLine1 { get; set; } 13 | public string AddressLine2 { get; set; } 14 | public string City { get; set; } 15 | public string Region { get; set; } 16 | public string PostalCode { get; set; } 17 | public DateTime DateCreated { get; set; } 18 | public DateTime DateUpdated { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/TransactionQueueInbound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueInbound 8 | { 9 | public int TransactionQueueInboundId { get; set; } 10 | public int SenderTransactionQueueId { get; set; } 11 | public string TransactionCode { get; set; } 12 | public string Payload { get; set; } 13 | public string ExchangeName { get; set; } 14 | public DateTime DateCreated { get; set; } 15 | } 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/TransactionQueueInboundHistory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueInboundHistory 8 | { 9 | public int TransactionQueueInboundHistoryId { get; set; } 10 | public int TransactionQueueInboundId { get; set; } 11 | public int SenderTransactionQueueId { get; set; } 12 | public string TransactionCode { get; set; } 13 | public string Payload { get; set; } 14 | public string ExchangeName { get; set; } 15 | public bool ProcessedSuccessfully { get; set; } 16 | public bool DuplicateMessage { get; set; } 17 | public string ErrorMessage { get; set; } 18 | public DateTime DateCreatedInbound { get; set; } 19 | public DateTime DateCreated { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/TransactionQueueOutbound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueOutbound 8 | { 9 | public int TransactionQueueOutboundId { get; set; } 10 | public string TransactionCode { get; set; } 11 | public string Payload { get; set; } 12 | public string ExchangeName { get; set; } 13 | public Boolean SentToExchange { get; set; } 14 | public DateTime DateCreated { get; set; } 15 | public DateTime DateSentToExchange { get; set; } 16 | public DateTime DateToResendToExchange { get; set; } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/TransactionQueueOutboundHistory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueOutboundHistory 8 | { 9 | public int TransactionQueueOutboundHistoryId { get; set; } 10 | public int TransactionQueueOutboundId { get; set; } 11 | public string TransactionCode { get; set; } 12 | public string Payload { get; set; } 13 | public string ExchangeName { get; set; } 14 | public Boolean SentToExchange { get; set; } 15 | public DateTime DateOutboundTransactionCreated { get; set; } 16 | public DateTime DateSentToExchange { get; set; } 17 | public DateTime DateToResendToExchange { get; set; } 18 | public DateTime DateCreated { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Entities/TransactionQueueSemaphore.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueSemaphore 8 | { 9 | public int TransactionQueueSemaphoreId { get; set; } 10 | public string SemaphoreKey { get; set; } 11 | public DateTime DateCreated { get; set; } 12 | public DateTime DateUpdated { get; set; } 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Transformations/ProductDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Transformations 6 | { 7 | public class ProductDataTransformation 8 | { 9 | public int AccountId { get; set; } 10 | public int ProductId { get; set; } 11 | public int ProductMasterId { get; set; } 12 | public string ProductNumber { get; set; } 13 | public string Description { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Transformations/PurchaseOrderDetailDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Transformations 6 | { 7 | public class PurchaseOrderDetailDataTransformation 8 | { 9 | public int AccountId { get; set; } 10 | public int PurchaseOrderDetailId { get; set; } 11 | public int PurchaseOrderId { get; set; } 12 | public int ProductId { get; set; } 13 | public int ProductMasterId { get; set; } 14 | public string ProductNumber { get; set; } 15 | public string ProductDescription { get; set; } 16 | public double UnitPrice { get; set; } 17 | public int OrderQuantity { get; set; } 18 | public int ReceivedQuantity { get; set; } 19 | public double OrderTotal { get; set; } 20 | public DateTime DateCreated { get; set; } 21 | public DateTime DateUpdated { get; set; } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Transformations/PurchaseOrderInquiryDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Transformations 6 | { 7 | public class PurchaseOrderInquiryDataTransformation 8 | { 9 | public string SupplierName { get; set; } 10 | public int CurrentPageNumber { get; set; } 11 | public int PageSize { get; set; } 12 | public string SortDirection { get; set; } 13 | public string SortExpression { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Transformations/SupplierDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using CodeProject.PurchaseOrderManagement.Data.Entities; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace CodeProject.PurchaseOrderManagement.Data.Transformations 7 | { 8 | public class SupplierDataTransformation 9 | { 10 | public int AccountId { get; set; } 11 | public int SupplierId { get; set; } 12 | public string SupplierName { get; set; } 13 | public string AddressLine1 { get; set; } 14 | public string AddressLine2 { get; set; } 15 | public string City { get; set; } 16 | public string Region { get; set; } 17 | public string PostalCode { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Data.Models/Transformations/SupplierInquiryDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.PurchaseOrderManagement.Data.Transformations 6 | { 7 | public class SupplierInquiryDataTransformation 8 | { 9 | public string SupplierName { get; set; } 10 | public int CurrentPageNumber { get; set; } 11 | public int PageSize { get; set; } 12 | public string SortDirection { get; set; } 13 | public string SortExpression { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.Interfaces/CodeProject.PurchaseOrderManagement.Interfaces.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.MessageQueueing/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "CodeProject.PurchaseOrderManagement.MessageQueueing": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | } 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.MessageQueueing/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_PurchaseOrderManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "MessageQueueAppConfig": { 6 | }, 7 | "Logging": { 8 | "LogLevel": { 9 | "Default": "Information" 10 | } 11 | }, 12 | "AppConfig": { 13 | "TextToPrint": "This is from configuration" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.WebApi/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace CodeProject.PurchaseOrderManagement.WebApi 12 | { 13 | public class Program 14 | { 15 | public static void Main(string[] args) 16 | { 17 | CreateWebHostBuilder(args).Build().Run(); 18 | } 19 | 20 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 21 | WebHost.CreateDefaultBuilder(args) 22 | .UseStartup(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.WebApi/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/launchsettings.json", 3 | "iisSettings": { 4 | "windowsAuthentication": false, 5 | "anonymousAuthentication": true, 6 | "iisExpress": { 7 | "applicationUrl": "http://localhost:57449", 8 | "sslPort": 44327 9 | } 10 | }, 11 | "profiles": { 12 | "IIS Express": { 13 | "commandName": "IISExpress", 14 | "launchBrowser": true, 15 | "launchUrl": "api/values", 16 | "environmentVariables": { 17 | "ASPNETCORE_ENVIRONMENT": "Development" 18 | } 19 | }, 20 | "CodeProject.PurchaseOrderManagement.WebApi": { 21 | "commandName": "Project", 22 | "launchBrowser": true, 23 | "launchUrl": "api/values", 24 | "applicationUrl": "https://localhost:44327;http://localhost:57449", 25 | "environmentVariables": { 26 | "ASPNETCORE_ENVIRONMENT": "Development" 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.WebApi/SignalRHub/MessageQueueHub.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.SignalR; 6 | 7 | namespace CodeProject.PurchaseOrderManagement.WebApi.SignalRHub 8 | { 9 | public class MessageQueueHub : Hub 10 | { 11 | //public async Task SendMessage(string user, string message) 12 | //{ 13 | // await Clients.All.SendAsync("SendMessage", user, message); 14 | //} 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /PurchaseOrderManagement/CodeProject.PurchaseOrderManagement.WebApi/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_PurchaseOrderManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | "# DevelopingMicroservices" 2 | -------------------------------------------------------------------------------- /SalesOrderManagement/.vs/CodeProject.SalesOrderManagement.BusinessServices/DesignTimeBuild/.dtbcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SalesOrderManagement/.vs/CodeProject.SalesOrderManagement.BusinessServices/DesignTimeBuild/.dtbcache.v2 -------------------------------------------------------------------------------- /SalesOrderManagement/.vs/CodeProject.SalesOrderManagement.BusinessServices/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SalesOrderManagement/.vs/CodeProject.SalesOrderManagement.BusinessServices/v16/.suo -------------------------------------------------------------------------------- /SalesOrderManagement/.vs/CodeProject.SalesOrderManagement.WebApi/DesignTimeBuild/.dtbcache.v2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SalesOrderManagement/.vs/CodeProject.SalesOrderManagement.WebApi/DesignTimeBuild/.dtbcache.v2 -------------------------------------------------------------------------------- /SalesOrderManagement/.vs/CodeProject.SalesOrderManagement.WebApi/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SalesOrderManagement/.vs/CodeProject.SalesOrderManagement.WebApi/v16/.suo -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/CodeProject.SalesOrderManagement.Data.Models.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/Customer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class Customer 8 | { 9 | public int CustomerId { get; set; } 10 | public int AccountId { get; set; } 11 | public string Name { get; set; } 12 | public string AddressLine1 { get; set; } 13 | public string AddressLine2 { get; set; } 14 | public string City { get; set; } 15 | public string Region { get; set; } 16 | public string PostalCode { get; set; } 17 | public double AmountOrdered { get; set; } 18 | public double AmountShipped { get; set; } 19 | public double CreditLimit { get; set; } 20 | public DateTime DateShipped { get; set; } 21 | public DateTime DateCreated { get; set; } 22 | public DateTime DateUpdated { get; set; } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/Product.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class Product 8 | { 9 | public int AccountId { get; set; } 10 | public int ProductId { get; set; } 11 | public int ProductMasterId { get; set; } 12 | public string ProductNumber { get; set; } 13 | public string Description { get; set; } 14 | public double UnitPrice { get; set; } 15 | public int OnHandQuantity { get; set; } 16 | public int CommittedQuantity { get; set; } 17 | public DateTime DateCreated { get; set; } 18 | public DateTime DateUpdated { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/SalesOrderDetail.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class SalesOrderDetail 8 | { 9 | public int SalesOrderDetailId { get; set; } 10 | public int SalesOrderId { get; set; } 11 | public int ProductId { get; set; } 12 | public double UnitPrice { get; set; } 13 | public int OrderQuantity { get; set; } 14 | public int ShippedQuantity { get; set; } 15 | public DateTime DateCreated { get; set; } 16 | public DateTime DateUpdated { get; set; } 17 | public Product Product { get; set; } 18 | public SalesOrder SalesOrder { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/SalesOrderNumberSequence.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | 8 | public class SalesOrderNumberSequence 9 | { 10 | public int SalesOrderNumberSequenceId { get; set; } 11 | public int AccountId { get; set; } 12 | public int SalesOrderNumber { get; set; } 13 | public DateTime DateCreated { get; set; } 14 | public DateTime DateUpdated { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/SalesOrderStatus.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class SalesOrderStatus 8 | { 9 | public int SalesOrderStatusId { get; set; } 10 | public string Description { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/TransactionQueueInbound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueInbound 8 | { 9 | public int TransactionQueueInboundId { get; set; } 10 | public int SenderTransactionQueueId { get; set; } 11 | public string TransactionCode { get; set; } 12 | public string Payload { get; set; } 13 | public string ExchangeName { get; set; } 14 | public DateTime DateCreated { get; set; } 15 | } 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/TransactionQueueInboundHistory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueInboundHistory 8 | { 9 | public int TransactionQueueInboundHistoryId { get; set; } 10 | public int TransactionQueueInboundId { get; set; } 11 | public int SenderTransactionQueueId { get; set; } 12 | public string TransactionCode { get; set; } 13 | public string Payload { get; set; } 14 | public string ExchangeName { get; set; } 15 | public bool ProcessedSuccessfully { get; set; } 16 | public bool DuplicateMessage { get; set; } 17 | public string ErrorMessage { get; set; } 18 | public DateTime DateCreatedInbound { get; set; } 19 | public DateTime DateCreated { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/TransactionQueueOutbound.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueOutbound 8 | { 9 | public int TransactionQueueOutboundId { get; set; } 10 | public string TransactionCode { get; set; } 11 | public string Payload { get; set; } 12 | public string ExchangeName { get; set; } 13 | public Boolean SentToExchange { get; set; } 14 | public DateTime DateCreated { get; set; } 15 | public DateTime DateSentToExchange { get; set; } 16 | public DateTime DateToResendToExchange { get; set; } 17 | 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/TransactionQueueOutboundHistory.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueOutboundHistory 8 | { 9 | public int TransactionQueueOutboundHistoryId { get; set; } 10 | public int TransactionQueueOutboundId { get; set; } 11 | public string TransactionCode { get; set; } 12 | public string Payload { get; set; } 13 | public string ExchangeName { get; set; } 14 | public Boolean SentToExchange { get; set; } 15 | public DateTime DateOutboundTransactionCreated { get; set; } 16 | public DateTime DateSentToExchange { get; set; } 17 | public DateTime DateToResendToExchange { get; set; } 18 | public DateTime DateCreated { get; set; } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Entities/TransactionQueueSemaphore.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Entities 6 | { 7 | public class TransactionQueueSemaphore 8 | { 9 | public int TransactionQueueSemaphoreId { get; set; } 10 | public string SemaphoreKey { get; set; } 11 | public DateTime DateCreated { get; set; } 12 | public DateTime DateUpdated { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Transformations/CustomerDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Transformations 6 | { 7 | 8 | public class CustomerDataTransformation 9 | { 10 | public int AccountId { get; set; } 11 | public int CustomerId { get; set; } 12 | public string CustomerName { get; set; } 13 | public string AddressLine1 { get; set; } 14 | public string AddressLine2 { get; set; } 15 | public string City { get; set; } 16 | public string Region { get; set; } 17 | public string PostalCode { get; set; } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Transformations/CustomerInquiryDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Transformations 6 | { 7 | public class CustomerInquiryDataTransformation 8 | { 9 | public string CustomerName { get; set; } 10 | public int CurrentPageNumber { get; set; } 11 | public int PageSize { get; set; } 12 | public string SortDirection { get; set; } 13 | public string SortExpression { get; set; } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Transformations/ProductDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Transformations 6 | { 7 | public class ProductDataTransformation 8 | { 9 | public int AccountId { get; set; } 10 | public int ProductId { get; set; } 11 | public int ProductMasterId { get; set; } 12 | public string ProductNumber { get; set; } 13 | public string Description { get; set; } 14 | public string BinLocation { get; set; } 15 | public double UnitPrice { get; set; } 16 | public double AverageCost { get; set; } 17 | public int OnHandQuantity { get; set; } 18 | public int OnOrderQuantity { get; set; } 19 | public int CommittedQuantity { get; set; } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Transformations/SalesOrderDetailDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Transformations 6 | { 7 | public class SalesOrderDetailDataTransformation 8 | { 9 | public int AccountId { get; set; } 10 | public int SalesOrderDetailId { get; set; } 11 | public int SalesOrderId { get; set; } 12 | public int ProductId { get; set; } 13 | public int ProductMasterId { get; set; } 14 | public string ProductNumber { get; set; } 15 | public string ProductDescription { get; set; } 16 | public double UnitPrice { get; set; } 17 | public int OrderQuantity { get; set; } 18 | public int ShippedQuantity { get; set; } 19 | public double OrderTotal { get; set; } 20 | public DateTime DateCreated { get; set; } 21 | public DateTime DateUpdated { get; set; } 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Data.Models/Transformations/SalesOrderInquiryDataTransformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.Data.Transformations 6 | { 7 | 8 | public class SalesOrderInquiryDataTransformation 9 | { 10 | public string CustomerName { get; set; } 11 | public int CurrentPageNumber { get; set; } 12 | public int PageSize { get; set; } 13 | public string SortDirection { get; set; } 14 | public string SortExpression { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.Interfaces/CodeProject.SalesOrderManagement.Interfaces.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.MessageQueueing/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "CodeProject.SalesOrderManagement.MessageQueueing": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | } 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.MessageQueueing/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=JOEY\\SQLEXPRESS;Database=MS_SalesOrderManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "MessageQueueAppConfig": { 6 | "ExchangeName": "SalesOrder_DEV", 7 | "RoutingKey": "ERP-DEV", 8 | "InboundMessageQueue": "SalesOrder_DEV", 9 | "OutboundMessageQueues": "InventoryManagement_DEV", 10 | "LoggingExchangeName": "LoggingManagement_DEV", 11 | "LoggingMessageQueue": "LoggingManagement_DEV" 12 | }, 13 | "Logging": { 14 | "LogLevel": { 15 | "Default": "Information" 16 | } 17 | }, 18 | "AppConfig": { 19 | "TextToPrint": "This is from configuration" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.WebApi/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.IO; 4 | using System.Linq; 5 | using System.Threading.Tasks; 6 | using Microsoft.AspNetCore; 7 | using Microsoft.AspNetCore.Hosting; 8 | using Microsoft.Extensions.Configuration; 9 | using Microsoft.Extensions.Logging; 10 | 11 | namespace CodeProject.SalesOrderManagement.WebApi 12 | { 13 | public class Program 14 | { 15 | public static void Main(string[] args) 16 | { 17 | CreateWebHostBuilder(args).Build().Run(); 18 | } 19 | 20 | public static IWebHostBuilder CreateWebHostBuilder(string[] args) => 21 | WebHost.CreateDefaultBuilder(args) 22 | .UseStartup(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.WebApi/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "http://json.schemastore.org/launchsettings.json", 3 | "iisSettings": { 4 | "windowsAuthentication": false, 5 | "anonymousAuthentication": true, 6 | "iisExpress": { 7 | "applicationUrl": "http://localhost:57403", 8 | "sslPort": 44396 9 | } 10 | }, 11 | "profiles": { 12 | "IIS Express": { 13 | "commandName": "IISExpress", 14 | "launchBrowser": true, 15 | "launchUrl": "api/values", 16 | "environmentVariables": { 17 | "ASPNETCORE_ENVIRONMENT": "Development" 18 | } 19 | }, 20 | "CodeProject.SalesOrderManagement.WebApi": { 21 | "commandName": "Project", 22 | "launchBrowser": false, 23 | "launchUrl": "api/values", 24 | "applicationUrl": "https://localhost:44396;http://localhost:57403", 25 | "environmentVariables": { 26 | "ASPNETCORE_ENVIRONMENT": "Development" 27 | } 28 | } 29 | } 30 | } -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.WebApi/SignalRHub/MessageQueueHub.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Threading.Tasks; 5 | using Microsoft.AspNetCore.SignalR; 6 | 7 | namespace CodeProject.SalesOrderManagement.WebApi.SignalRHub 8 | { 9 | 10 | public class MessageQueueHub : Hub 11 | { 12 | //public async Task SendMessage(string user, string message) 13 | //{ 14 | // await Clients.All.SendAsync("SendMessage", user, message); 15 | //} 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.WebApi/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_SalesOrderManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Debug", 8 | "System": "Information", 9 | "Microsoft": "Information" 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /SalesOrderManagement/CodeProject.SalesOrderManagement.WebApi/appsettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "ConnectionStrings": { 3 | "PrimaryDatabaseConnectionString": "Data Source=.\\SQLEXPRESS;Database=MS_SalesOrderManagement_DEV;Trusted_Connection=True" 4 | }, 5 | "Logging": { 6 | "LogLevel": { 7 | "Default": "Warning" 8 | } 9 | }, 10 | "AllowedHosts": "*" 11 | } 12 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/CodeProject.Shared.Common.Interfaces.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/IDataRepository.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Threading.Tasks; 5 | 6 | namespace CodeProject.Shared.Common.Interfaces 7 | { 8 | 9 | /// 10 | /// IDataRepository 11 | /// 12 | public interface IDataRepository 13 | { 14 | 15 | void CommitTransaction(); 16 | Task UpdateDatabase(); 17 | void BeginTransaction(int isolationLevel); 18 | void BeginTransaction(); 19 | void RollbackTransaction(); 20 | Object OpenConnection(); 21 | void CloseConnection(); 22 | void OpenConnection(Object dbConnection); 23 | void OpenConnection(string connectionString); 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/IMessageQueue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Interfaces 6 | { 7 | public interface IMessageQueue 8 | { 9 | int TransactionQueueId { get; set; } 10 | string TransactionCode { get; set; } 11 | string Payload { get; set; } 12 | string ExchangeName { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/IMessageQueueConfiguration.cs: -------------------------------------------------------------------------------- 1 | using CodeProject.Shared.Common.Models; 2 | using RabbitMQ.Client.MessagePatterns; 3 | using System; 4 | using System.Collections.Generic; 5 | using System.Text; 6 | 7 | namespace CodeProject.Shared.Common.Interfaces 8 | { 9 | 10 | public interface IMessageQueueConfiguration 11 | { 12 | string GetOriginatingQueueName(); 13 | Subscription GetSubscription(); 14 | void AddQueue(string queueName); 15 | void InitializeInboundMessageQueueing(string queueName); 16 | void InitializeOutboundMessageQueueing(); 17 | void InitializeLoggingExchange(string loggingExchangeName, string loggingQueueName); 18 | ResponseModel SendMessage(MessageQueue entity); 19 | ResponseModel SendAcknowledgementMessage(MessageQueue entity); 20 | ResponseModel SendReceivedMessageToLoggingQueue(MessageQueue messageQueue, string loggingExchangeName); 21 | 22 | string TransactionCode { get; set; } 23 | 24 | 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/IMessageQueueConnection.cs: -------------------------------------------------------------------------------- 1 | using RabbitMQ.Client; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace CodeProject.Shared.Common.Interfaces 7 | { 8 | public interface IMessageQueueConnection 9 | { 10 | void CreateConnection(); 11 | IConnection GetConnection(); 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/IMessageQueueProcessing.cs: -------------------------------------------------------------------------------- 1 | using CodeProject.Shared.Common.Models; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | using System.Threading.Tasks; 6 | 7 | namespace CodeProject.Shared.Common.Interfaces 8 | { 9 | public interface IMessageQueueProcessing 10 | { 11 | Task> CommitInboundMessage(MessageQueue messageQueue, ConnectionStrings connectionStrings); 12 | Task>> SendQueueMessages(List messageQueueConfigurations, string outboundSemaphoreKey, ConnectionStrings connectionStrings); 13 | Task>> ProcessMessages(string inboundSemaphoreKey, ConnectionStrings connectionStrings); 14 | 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/obj/CodeProject.Shared.Common.Interfaces.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Interfaces.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | bf3c1e21d98e6096920ffe2a506ee068d4a942cb 2 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Interfaces.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Shared/CodeProject.Shared.Common.Interfaces/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Interfaces.assets.cache -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Interfaces/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Interfaces.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Shared/CodeProject.Shared.Common.Interfaces/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Interfaces.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/AppSettings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | // public class AppSettings 8 | //{ 9 | 10 | //} 11 | } 12 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/CodeProject.Shared.Common.Models.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | netcoreapp3.1 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/ConnectionStrings.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public class ConnectionStrings 8 | { 9 | public string PrimaryDatabaseConnectionString { get; set; } 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/MessageQueue.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public class MessageQueue 8 | { 9 | public string TransactionCode { get; set; } 10 | public int TransactionQueueId { get; set; } 11 | public string Payload { get; set; } 12 | public string ExchangeName { get; set; } 13 | public string QueueName { get; set; } 14 | public Guid MessageGuid { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/MessageQueueDirection.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public static class MessageQueueDirection 8 | { 9 | public static int Inbound = 1; 10 | public static int Outbound = 2; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/MessageQueueEndpoints.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public static class MessageQueueEndpoints 8 | { 9 | public static string SalesOrderQueue = "SalesOrder_Queue"; 10 | public static string PurchaseOrderQueue = "PurchaseOrder_Queue"; 11 | public static string InventoryQueue = "Inventory_Queue"; 12 | public static string LoggingQueue = "Logging_Queue"; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/MessageQueueExchanges.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public static class MessageQueueExchanges 8 | { 9 | public static string PurchaseOrderManagement = "PurchaseOrderManagement"; 10 | public static string InventoryManagement = "InventoryManagement"; 11 | public static string SalesOrderManagement = "SalesOrderManagement"; 12 | public static string ProductUpdated = "ProductUpdated"; 13 | public static string InventoryReceived = "InventoryReceived"; 14 | public static string PurchaseOrderSubmitted = "PurchaseOrderSubmitted"; 15 | public static string SalesOrderSubmitted = "SalesOrderSubmitted"; 16 | public static string InventoryShipped = "InventoryShipped"; 17 | public static string Logging = "Logging"; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/MessageQueueFanouts.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | 8 | public static class MessageExchangeFanouts 9 | { 10 | public static int ProductUpdated = 2; 11 | public static int PurchaseOrderSubmitted = 1; 12 | public static int SalesOrderSubmitted = 1; 13 | public static int InventoryReceived = 2; 14 | public static int InventoryShipped = 1; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/MessageQueuePayloads/InventoryTransactionPayload.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models.MessageQueuePayloads 6 | { 7 | public class InventoryTransactionPayload 8 | { 9 | public int ProductId { get; set; } 10 | public int Quantity { get; set; } 11 | public double UnitCost { get; set; } 12 | public int EntityId { get; set; } 13 | public int MasterEntityId { get; set; } 14 | public DateTime TransactionDate { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/MessageQueuePayloads/ProductUpdatePayload.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models.MessageQueuePayloads 6 | { 7 | public class ProductUpdatePayload 8 | { 9 | public int AccountId { get; set; } 10 | public int ProductId { get; set; } 11 | public string ProductNumber { get; set; } 12 | public string Description { get; set; } 13 | public string BinLocation { get; set; } 14 | public double UnitPrice { get; set; } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/MessageQueueReceipt.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public class MessageQueueReceipt 8 | { 9 | public string TransactionCode { get; set; } 10 | public int TransactionQueueId { get; set; } 11 | public int MessageQueueDirection { get; set; } 12 | public string Payload { get; set; } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/PagingInformation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | 8 | public class DataGridPagingInformation 9 | { 10 | public int CurrentPageNumber { get; set; } 11 | public int PageSize { get; set; } 12 | public string SortExpression { get; set; } 13 | public string SortDirection { get; set; } 14 | public int TotalRows { get; set; } 15 | public int TotalPages { get; set; } 16 | 17 | public DataGridPagingInformation() 18 | { 19 | CurrentPageNumber = 1; 20 | PageSize = 10; 21 | SortDirection = "ASC"; 22 | SortExpression = string.Empty; 23 | TotalPages = 0; 24 | TotalRows = 0; 25 | } 26 | 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/PurchaseOrderStatuses.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public static class PurchaseOrderStatuses 8 | { 9 | public static int Open = 1; 10 | public static int Submitted = 2; 11 | public static int Completed = 3; 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/ResponseModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Collections; 4 | using System.Text; 5 | 6 | namespace CodeProject.Shared.Common.Models 7 | { 8 | public class ResponseModel 9 | { 10 | public string Token { get; set; } 11 | public bool ReturnStatus { get; set; } 12 | public List ReturnMessage { get; set; } 13 | public Hashtable Errors; 14 | public int TotalPages; 15 | public int TotalRows; 16 | public int PageSize; 17 | public Boolean IsAuthenicated; 18 | public T Entity; 19 | 20 | public ResponseModel() 21 | { 22 | ReturnMessage = new List(); 23 | ReturnStatus = true; 24 | Errors = new Hashtable(); 25 | TotalPages = 0; 26 | TotalPages = 0; 27 | PageSize = 0; 28 | IsAuthenicated = false; 29 | } 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/SalesOrderStatuses.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | 8 | public static class SalesOrderStatuses 9 | { 10 | public static int Open = 1; 11 | public static int Submitted = 2; 12 | public static int Completed = 3; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/SecurityModel.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | 8 | public class SecurityModel 9 | { 10 | public string Token { get; set; } 11 | public int UserId { get; set; } 12 | public int AccountId { get; set; } 13 | public string FirstName { get; set; } 14 | public string LastName { get; set; } 15 | public string EmailAddress { get; set; } 16 | public string CompanyName { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/TransactionQueueTypes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public static class TransactionQueueTypes 8 | { 9 | public static string ProductUpdated = "ProductUpdated"; 10 | public static string InventoryReceived = "InventoryReceived"; 11 | public static string InventoryShipped = "InventoryShipped"; 12 | public static string PurchaseOrderSubmitted = "PurchaseOrderSubmitted"; 13 | public static string SalesOrderSubmitted = "SalesOrderSubmitted"; 14 | public static string Acknowledgement = "Acknowledgement"; 15 | public static string TriggerImmediately = "TriggerImmediately"; 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/UserTypes.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public static class UserTypes 8 | { 9 | public static int Administrator = 1; 10 | public static int NonAdministrator = 2; 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/ValidationResult.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.Shared.Common.Models 6 | { 7 | public class ValidationResult 8 | { 9 | public Boolean ValidationStatus { get; set; } 10 | public List ValidationMessages { get; set; } 11 | 12 | public ValidationResult() 13 | { 14 | ValidationStatus = true; 15 | ValidationMessages = new List(); 16 | } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/obj/CodeProject.Shared.Common.Models.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | 6 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Models.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | d78075c0d17fc235bd3b59d725f1d740eae6d049 2 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Models.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Shared/CodeProject.Shared.Common.Models/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Models.assets.cache -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Models.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Shared/CodeProject.Shared.Common.Models/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Models.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Models/obj/project.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "dgSpecHash": "WBPN0yXvWRg8Z9rE92BWRoalFpJAcNLUncoqu6Y7C9VK35gz8gfmuj1C7FluHuhHoX4kypqPJc3PzvfkDueLZA==", 4 | "success": true, 5 | "projectFilePath": "C:\\MyFiles\\CodeProject.Microservices\\DevelopingMicroservices\\Shared\\CodeProject.Shared.Common.Models\\CodeProject.Shared.Common.Models.csproj", 6 | "expectedPackageFiles": [], 7 | "logs": [] 8 | } -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Utilites/Serialization.cs: -------------------------------------------------------------------------------- 1 | using Newtonsoft.Json; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace CodeProject.Shared.Common.Utilities 7 | { 8 | public static class SerializationFunction 9 | { 10 | /// 11 | /// Return String From Object 12 | /// 13 | /// 14 | /// 15 | public static string ReturnStringFromObject(T entity) 16 | { 17 | string output = JsonConvert.SerializeObject(entity); 18 | return output; 19 | } 20 | /// 21 | /// Return Object From String 22 | /// 23 | /// 24 | /// 25 | public static T ReturnObjectFromString(string entity) 26 | { 27 | T output = JsonConvert.DeserializeObject(entity); 28 | return output; 29 | } 30 | 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Utilites/obj/CodeProject.Shared.Common.Utilities.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | 6 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Utilites/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Utilities.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 14963666fde846cc85aa723d1dbe60de62c063e4 2 | -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Utilites/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Utilities.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Shared/CodeProject.Shared.Common.Utilites/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Utilities.assets.cache -------------------------------------------------------------------------------- /Shared/CodeProject.Shared.Common.Utilites/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Utilities.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/Shared/CodeProject.Shared.Common.Utilites/obj/Debug/netcoreapp3.1/CodeProject.Shared.Common.Utilities.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/.vs/SOLIDConsoleApplication/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/.vs/SOLIDConsoleApplication/v16/.suo -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Entities/Order.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.BusinessServices 6 | { 7 | public class Order 8 | { 9 | public int OrderNumber { get; set; } 10 | public int CustomerNumber { get; set; } 11 | public string CustomerName { get; set; } 12 | public string ShipToAddress { get; set; } 13 | public string ShipToCity { get; set; } 14 | public string ShipToState { get; set; } 15 | public string ShipToZipCode { get; set; } 16 | public string ShipToCountryCode { get; set; } 17 | public decimal TotalOrderValue { get; set; } 18 | public decimal NetOrderValue { get; set; } 19 | public List OrderAdjustments { get; set; } 20 | 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Entities/OrderAdjustment.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.BusinessServices 6 | { 7 | public class OrderAdjustment 8 | { 9 | public string CalculationType { get; set; } 10 | public string CalculationEntity { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Interfaces/IAdjustmentsBusinessService.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.BusinessServices.Interfaces 6 | { 7 | public interface IAdjustmentsBusinessService 8 | { 9 | decimal CalculateOrderAdjustments(List orderAdjustments, decimal orderValue); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Interfaces/ICalculation.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.BusinessServices 6 | { 7 | public interface ICalculation 8 | { 9 | public string CalculationType { get; set; } 10 | public int Priority { get; set; } 11 | public decimal Calculate(string code, decimal orderValue); 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Interfaces/IDataAccessService.cs: -------------------------------------------------------------------------------- 1 | using CodeProject.SalesOrderManagement.BusinessServices.Tables; 2 | using System; 3 | using System.Collections.Generic; 4 | using System.Text; 5 | 6 | namespace CodeProject.SalesOrderManagement.BusinessServices.Interfaces 7 | { 8 | public interface IDataAccessService 9 | { 10 | TierDiscountTable GetVolumeDiscount(string tierLevel); 11 | ValueAddedTaxTable GetValueAddedTax(string countryCode); 12 | StateTaxTable GetStateTax(string stateCode); 13 | PromotionalDiscountTable GetPromotionalDiscount(string promotionalCode); 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/SOLIDConsoleApplication.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Exe 5 | netcoreapp3.1 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Tables/PromotionalDiscountTable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.BusinessServices.Tables 6 | { 7 | public class PromotionalDiscountTable 8 | { 9 | public string PromotionalCode { get; set; } 10 | public decimal DiscountAmount { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Tables/StateTaxTable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.BusinessServices.Tables 6 | { 7 | public class StateTaxTable 8 | { 9 | public string StateCode { get; set; } 10 | public decimal TaxRate { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Tables/TierDiscountTable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.BusinessServices.Tables 6 | 7 | { 8 | public class TierDiscountTable 9 | { 10 | public string TierLevel { get; set; } 11 | public decimal DiscountPercentage { get; set; } 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/Tables/ValueAddedTaxTable.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace CodeProject.SalesOrderManagement.BusinessServices.Tables 6 | { 7 | public class ValueAddedTaxTable 8 | { 9 | public string CountryCode { get; set; } 10 | public decimal TaxRate { get; set; } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.deps.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeTarget": { 3 | "name": ".NETCoreApp,Version=v3.1", 4 | "signature": "" 5 | }, 6 | "compilationOptions": {}, 7 | "targets": { 8 | ".NETCoreApp,Version=v3.1": { 9 | "SOLIDConsoleApplication/1.0.0": { 10 | "runtime": { 11 | "SOLIDConsoleApplication.dll": {} 12 | } 13 | } 14 | } 15 | }, 16 | "libraries": { 17 | "SOLIDConsoleApplication/1.0.0": { 18 | "type": "project", 19 | "serviceable": false, 20 | "sha512": "" 21 | } 22 | } 23 | } -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.dll -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.exe -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.pdb -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.runtimeconfig.dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "additionalProbingPaths": [ 4 | "C:\\Users\\admin\\.dotnet\\store\\|arch|\\|tfm|", 5 | "C:\\Users\\admin\\.nuget\\packages", 6 | "C:\\Program Files\\dotnet\\sdk\\NuGetFallbackFolder" 7 | ] 8 | } 9 | } -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/bin/Debug/netcoreapp3.1/SOLIDConsoleApplication.runtimeconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "runtimeOptions": { 3 | "tfm": "netcoreapp3.1", 4 | "framework": { 5 | "name": "Microsoft.NETCore.App", 6 | "version": "3.1.0" 7 | } 8 | } 9 | } -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.AssemblyInfoInputs.cache: -------------------------------------------------------------------------------- 1 | 50c7458468d6eea4fd7b104540458b25e48e4939 2 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.assets.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.assets.cache -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.csproj.CoreCompileInputs.cache: -------------------------------------------------------------------------------- 1 | 555ff35de568820bbfec7653cfb1e20554c95584 2 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.csprojAssemblyReference.cache: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.csprojAssemblyReference.cache -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.dll -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.exe -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.genruntimeconfig.cache: -------------------------------------------------------------------------------- 1 | 86c8e15dd33445635927cfaf398408205fd11473 2 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/markcaplin/DevelopingMicroservices/17caf3fa78f7dced72acdb7e7ed5bab2d2ead35e/SolidPrinciples/SOLIDConsoleApplication/obj/Debug/netcoreapp3.1/SOLIDConsoleApplication.pdb -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/SOLIDConsoleApplication.csproj.nuget.g.targets: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | $(MSBuildAllProjects);$(MSBuildThisFileFullPath) 5 | 6 | -------------------------------------------------------------------------------- /SolidPrinciples/SOLIDConsoleApplication/obj/project.nuget.cache: -------------------------------------------------------------------------------- 1 | { 2 | "version": 2, 3 | "dgSpecHash": "SClrI9RAkPc+7DHHiQvzlB9dogkPBN/h6ecv4SZMdmU3IVG/akQomuhiGUETfN/roMstBZQZhMHYtCwL7LO05w==", 4 | "success": true, 5 | "projectFilePath": "C:\\MyFiles\\CodeProject.Microservices\\DevelopingMicroservices\\SolidPrinciples\\SOLIDConsoleApplication\\SOLIDConsoleApplication.csproj", 6 | "expectedPackageFiles": [], 7 | "logs": [] 8 | } -------------------------------------------------------------------------------- /Support/RunAllProcesses.bat: -------------------------------------------------------------------------------- 1 | dotnet run --verbosity m --launch-profile CodeProject.InventoryManagement.WebApi --no-build --project ..\InventoryManagement\CodeProject.InventoryManagement.WebApi 2 | dotnet run --verbosity m --launch-profile CodeProject.InventoryManagement.MessageQueueing --no-build --project ..\InventoryManagement\CodeProject.InventoryManagement.MessageQueueing 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Support/SpawnProcesses/SpawnProcesses/Properties/launchSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "profiles": { 3 | "SpawnProcesses": { 4 | "commandName": "Project", 5 | "environmentVariables": { 6 | "ASPNETCORE_ENVIRONMENT": "Development" 7 | } 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /Support/SpawnProcesses/SpawnProcesses/StartUpProcesses.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace SpawnProcesses 6 | { 7 | public class StartUpProcesses 8 | { 9 | public Boolean InventoryManagementWebApi { get; set; } 10 | public Boolean InventoryManagementMessageQueue { get; set; } 11 | public Boolean SalesOrderManagementWebApi { get; set; } 12 | public Boolean SalesOrderManagementMessageQueue { get; set; } 13 | public Boolean PurchaseOrderManagementWebApi { get; set; } 14 | public Boolean PurchaseOrderManagementMessageQueue { get; set; } 15 | public Boolean AccountManagementWebApi { get; set; } 16 | public Boolean LoggingManagementMessageQueue { get; set; } 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Support/SpawnProcesses/SpawnProcesses/appsettings.Development.json: -------------------------------------------------------------------------------- 1 | { 2 | "StartupProcesses": { 3 | "InventoryManagementWebApi": true, 4 | "InventoryManagementMessageQueue": true, 5 | "SalesOrderManagementWebApi": true, 6 | "SalesOrderManagementMessageQueue": true, 7 | "PurchaseOrderManagementWebApi": true, 8 | "PurchaseOrderManagementMessageQueue": true, 9 | "AccountManagementWebApi": true, 10 | "LoggingManagementMessageQueue": true 11 | }, 12 | "Logging": { 13 | "LogLevel": { 14 | "Default": "Information" 15 | } 16 | }, 17 | "AppConfig": { 18 | "TextToPrint": "This is from configuration" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Support/StartAccountManagementWebApi.bat: -------------------------------------------------------------------------------- 1 | REM cd ..\..\..\AccountManagement\CodeProject.AccountManagement.WebApi 2 | cd %1AccountManagement\CodeProject.AccountManagement.WebApi 3 | dotnet run --verbosity m --launch-profile CodeProject.AccountManagement.WebApi --no-build -------------------------------------------------------------------------------- /Support/StartInventoryManagementMessageQueue.bat: -------------------------------------------------------------------------------- 1 | REM cd ..\..\..\InventoryManagement\CodeProject.InventoryManagement.MessageQueueing 2 | REM cd ..\InventoryManagement\CodeProject.InventoryManagement.MessageQueueing 3 | cd %1InventoryManagement\CodeProject.InventoryManagement.MessageQueueing 4 | dotnet run --verbosity m --launch-profile CodeProject.InventoryManagement.MessageQueueing --no-build 5 | 6 | -------------------------------------------------------------------------------- /Support/StartInventoryManagementWebApi.bat: -------------------------------------------------------------------------------- 1 | REM cd c:\\MyFiles\_CodeProjectMicroServices\InventoryManagement\CodeProject.InventoryManagement.WebApi 2 | REM cd ..\..\..\InventoryManagement\CodeProject.InventoryManagement.WebApi 3 | REM cd ..\InventoryManagement\CodeProject.InventoryManagement.WebApi 4 | REM cd %1InventoryManagement\CodeProject.InventoryManagement.WebApi 5 | dotnet run --verbosity m --launch-profile CodeProject.InventoryManagement.WebApi --no-build --project %1InventoryManagement\CodeProject.InventoryManagement.WebApi 6 | 7 | -------------------------------------------------------------------------------- /Support/StartLoggingManagementMessageQueue.bat: -------------------------------------------------------------------------------- 1 | REM cd ..\..\..\LoggingManagement\CodeProject.LoggingManagement.MessageQueueing 2 | cd %1LoggingManagement\CodeProject.LoggingManagement.MessageQueueing 3 | dotnet run --verbosity m --launch-profile CodeProject.LoggingManagement.MessageQueueing --no-build 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Support/StartPurchaseOrderManagementMessageQueue.bat: -------------------------------------------------------------------------------- 1 | REM cd ..\..\..\PurchaseOrderManagement\CodeProject.PurchaseOrderManagement.MessageQueueing 2 | cd %1PurchaseOrderManagement\CodeProject.PurchaseOrderManagement.MessageQueueing 3 | dotnet run --verbosity m --launch-profile CodeProject.PurchaseOrderManagement.MessageQueueing --no-build 4 | 5 | 6 | -------------------------------------------------------------------------------- /Support/StartPurchaseOrderManagementWebApi.bat: -------------------------------------------------------------------------------- 1 | REM cd ..\..\..\PurchaseOrderManagement\CodeProject.PurchaseOrderManagement.WebApi 2 | cd %1PurchaseOrderManagement\CodeProject.PurchaseOrderManagement.WebApi 3 | dotnet run --verbosity m --launch-profile CodeProject.PurchaseOrderManagement.WebApi --no-build 4 | 5 | -------------------------------------------------------------------------------- /Support/StartSalesOrderManagementMessageQueue.bat: -------------------------------------------------------------------------------- 1 | cd %1SalesOrderManagement\CodeProject.SalesOrderManagement.MessageQueueing 2 | dotnet run --verbosity m --launch-profile CodeProject.SalesOrderManagement.MessageQueueing --no-build -------------------------------------------------------------------------------- /Support/StartSalesOrderManagementWebApi.bat: -------------------------------------------------------------------------------- 1 | REM cd ..\..\..\SalesOrderManagement\CodeProject.SalesOrderManagement.WebApi 2 | cd %1SalesOrderManagement\CodeProject.SalesOrderManagement.WebApi 3 | dotnet run --verbosity m --launch-profile CodeProject.SalesOrderManagement.WebApi --no-build 4 | 5 | -------------------------------------------------------------------------------- /Support/_BuildAllProjects.bat: -------------------------------------------------------------------------------- 1 | dotnet build SpawnProcesses\SpawnProcesses 2 | dotnet build ..\AccountManagement\CodeProject.AccountManagement.WebApi 3 | dotnet build ..\InventoryManagement\CodeProject.InventoryManagement.MessageQueueing 4 | dotnet build ..\InventoryManagement\CodeProject.InventoryManagement.WebApi 5 | dotnet build ..\LoggingManagement\CodeProject.LoggingManagement.MessageQueueing 6 | dotnet build ..\PurchaseOrderManagement\CodeProject.PurchaseOrderManagement.MessageQueueing 7 | dotnet build ..\PurchaseOrderManagement\CodeProject.PurchaseOrderManagement.WebApi 8 | dotnet build ..\SalesOrderManagement\CodeProject.SalesOrderManagement.MessageQueueing 9 | dotnet build ..\SalesOrderManagement\CodeProject.SalesOrderManagement.WebApi 10 | 11 | pause -------------------------------------------------------------------------------- /Support/_StartDevelopmentWebServersAndQueues.bat: -------------------------------------------------------------------------------- 1 | REM cd ..\Support\SpawnProcesses\SpawnProcesses\bin\Debug\netcoreapp2.1 2 | REM cd ..\Support\SpawnProcesses\SpawnProcesses\bin\Debug\netcoreapp2.1 3 | REM cd ..\Support\SpawnProcesses\SpawnProcesses 4 | REM dotnet SpawnProcesses.dll --verbosity m --no-build --launch-profile SpawnProcesses 5 | cd ..\Support\SpawnProcesses\SpawnProcesses 6 | dotnet run --verbosity m --launch-profile SpawnProcesses --no-build 7 | pause --------------------------------------------------------------------------------