private MFulfillment_AllocateFulfillableItemComponent RandomFulfillableItemComponent() { var description = $"{Words.GetRandomAdjective()} {Words.GetRandomNoun()}"; var consumableReference = CreateConsumableReference.FromTimestamp(GetUniqueNow()); return(new MFulfillment_AllocateFulfillableItemComponent() { Description = description, Quantity = Random.Next(9) + 1, ConsumableReference = consumableReference }); }
private void CreateProjectSnapshot(QuiltContext ctx, Project dbProject, long designSnapshotId, MProject_ProjectSpecification data, DateTime utcNow) { var dbArtifact = new Artifact() { ArtifactTypeCode = data.ProjectArtifactTypeCode, // ArtifactTypes.Kit ArtifactValueTypeCode = data.ProjectArtifactValueTypeCode, // ArtifactValueTypes.Json Value = data.ProjectArtifactValue }; _ = ctx.Artifacts.Add(dbArtifact); var dbProjectSnapshot = new ProjectSnapshot() { Project = dbProject, ProjectSnapshotSequence = dbProject.CurrentProjectSnapshotSequence, Name = dbProject.Name, DesignSnapshotId = designSnapshotId, Artifact = dbArtifact, CreateDateTimeUtc = utcNow, UpdateDateTimeUtc = utcNow, }; _ = ctx.ProjectSnapshots.Add(dbProjectSnapshot); foreach (var component in data.Components) { var mInventoryItem = InventoryMicroService.GetEntry(component.Sku); var consumableReference = CreateConsumableReference.FromInventoryItemId(mInventoryItem.InventoryItemId); var dbProjectSnapshotComponent = dbProjectSnapshot.ProjectSnapshotComponents.Where(r => r.ConsumableReference == consumableReference && r.UnitOfMeasureCodeNavigation == ctx.UnitOfMeasure(component.UnitOfMeasureCode)).SingleOrDefault(); if (dbProjectSnapshotComponent != null) { dbProjectSnapshotComponent.Quantity += component.Quantity; } else { dbProjectSnapshotComponent = new ProjectSnapshotComponent() { ProjectSnapshot = dbProjectSnapshot, ProjectSnapshotComponentSequence = dbProjectSnapshot.ProjectSnapshotComponents.Count + 1, ConsumableReference = consumableReference, UnitOfMeasureCode = component.UnitOfMeasureCode, Quantity = component.Quantity, }; _ = ctx.ProjectSnapshotComponents.Add(dbProjectSnapshotComponent); } } }
public static MProject_ProjectSnapshotComponent MProject_ProjectSnapshotComponent(ProjectSnapshotComponent dbProjectSnapshotComponent, MInventory_LibraryEntry mInventoryItem, InventoryItemType dbInventoryItemType, UnitOfMeasure dbUnitOfMeasure, decimal unitPrice, decimal totalPrice) { return(new MProject_ProjectSnapshotComponent() { ProjectSnapshotComponentId = dbProjectSnapshotComponent.ProjectSnapshotComponentId, Description = mInventoryItem.Name, Quantity = dbProjectSnapshotComponent.Quantity, UnitPrice = unitPrice, TotalPrice = totalPrice, ConsumableReference = CreateConsumableReference.FromInventoryItemId(mInventoryItem.InventoryItemId), Sku = mInventoryItem.Sku, UnitOfMeasure = GetValue.MCommon_UnitOfMeasure(dbUnitOfMeasure.UnitOfMeasureCode), UnitOfMeasureName = dbUnitOfMeasure.Name, Category = dbInventoryItemType.Name, Collection = mInventoryItem.Collection, Manufacturer = mInventoryItem.Manufacturer }); }
private MFulfillment_AllocateFulfillableItem RandomFulfillableItem() { var description = $"{Words.GetRandomAdjective()} {Words.GetRandomNoun()}"; var fulfillableItemReference = CreateFulfillableItemReference.FromTimestamp(GetUniqueNow()); var consumableReference = CreateConsumableReference.FromTimestamp(GetUniqueNow()); var components = new List <MFulfillment_AllocateFulfillableItemComponent>(); var max = Random.Next(9); for (int idx = 0; idx < max; ++idx) // Note: allow zero items { components.Add(RandomFulfillableItemComponent()); } return(new MFulfillment_AllocateFulfillableItem() { Description = description, FulfillableItemReference = fulfillableItemReference, ConsumableReference = consumableReference, FulfillableItemComponents = components }); }
public async Task CreateOrder() { var logger = ServiceScope.ServiceProvider.GetService <ILogger <OrderTest> >(); var ordererReference = CreateOrdererReference.FromTimestamp(GetUniqueNow()); logger.LogInformation($"Orderer reference = {ordererReference}"); var ordererId = await OrderMicroService.AllocateOrdererAsync(ordererReference); logger.LogInformation($"Orderer ID = {ordererId}"); var orderableReference = CreateOrderableReference.FromTimestamp(GetUniqueNow()); logger.LogInformation($"Orderable reference = {orderableReference}"); var orderableComponentReference = CreateOrderableCompnentReference.FromTimestamp(GetUniqueNow()); logger.LogInformation($"Orderable component reference = {orderableComponentReference}"); var mAllocateOrderable = new MOrder_AllocateOrderable() { OrderableReference = orderableReference, Name = "Orderable Item", Price = 100, Components = new List <MOrder_AllocateOrderableComponent>() { new MOrder_AllocateOrderableComponent() { OrderableComponentReference = orderableComponentReference, Description = "Orderable Item Component", Quantity = 2, ConsumableReference = CreateConsumableReference.FromTimestamp(GetUniqueNow()), UnitPrice = 25, TotalPrice = 50 } } }; var mAllocateOrderableResponse = await OrderMicroService.AllocateOrderableAsync(mAllocateOrderable); logger.LogInformation($"Orderable ID = {mAllocateOrderableResponse.OrderableId}"); _ = await OrderMicroService.AddCartItemAsync(ordererId, mAllocateOrderableResponse.OrderableId, 2); logger.LogInformation("Item added to cart."); var shippingAddress = new MCommon_Address() { Name = "RICHARD TODD", AddressLine1 = "17340 W 156 TER", City = "OLATHE", StateCode = "KS", PostalCode = "66062", CountryCode = "US" }; _ = await OrderMicroService.UpdateShippingAddressAsync(ordererId, shippingAddress); logger.LogInformation("Shipping address updated."); var orderId = await OrderMicroService.SubmitCartAsync(ordererId); logger.LogInformation($"Order {orderId} submitted."); }