Example #1
0
        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
     });
 }
Example #4
0
        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
            });
        }
Example #5
0
        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.");
        }