public Task Consume(ConsumeContext <AddBasketMessage> context)
        {
            var command = new AddToBasketCommand()
            {
                CustomerGuid = context.Message.CustomerGuid,
                ProductId    = context.Message.Id
            };

            return(_mediator.Send(command));
        }
Пример #2
0
        public async Task <IActionResult> Execute(
            [FromRoute] Guid restaurantId,
            [FromBody] AddToBasketRequest request)
        {
            var command = new AddToBasketCommand()
            {
                RestaurantId = restaurantId,
                MenuItemId   = request.MenuItemId,
                Quantity     = request.Quantity,
            };

            var result = await sender.Send(command);

            return(result ? Ok() : Problem(result.Error));
        }
        public void CountryShippingTest()
        {
            IGetBasketQuery          basketLoader       = new GetBasketQuery();
            IAddToBasketCommand      addToBasket        = new AddToBasketCommand();
            IGetShippingOptionsQuery getShippingOptions = new GetShippingOptions();

            Dictionary <string, ShippingBase> shippingOptions =
                getShippingOptions.Invoke(new GetShippingOptionsRequest()).ShippingOptions;


            var lineItemList = new List <LineItem>
            {
                new LineItem
                {
                    Amount         = 1.5m,
                    ProductId      = "1",
                    Shipping       = shippingOptions["CustomShipping"],
                    SupplierId     = 1,
                    DeliveryRegion = RegionShippingCost.Regions.Europe,
                    ShippingAmount = 1m
                },
                new LineItem
                {
                    Amount         = 1.5m,
                    ProductId      = "1",
                    Shipping       = shippingOptions["CustomShipping"],
                    SupplierId     = 1,
                    DeliveryRegion = RegionShippingCost.Regions.Europe,
                    ShippingAmount = 0.5m
                },
                new LineItem
                {
                    Amount         = 1.5m,
                    ProductId      = "1",
                    Shipping       = shippingOptions["CustomShipping"],
                    SupplierId     = 1,
                    DeliveryRegion = RegionShippingCost.Regions.UK,
                    ShippingAmount = 0.5m
                },
                new LineItem
                {
                    Amount         = 1.5m,
                    ProductId      = "1",
                    Shipping       = shippingOptions["CustomShipping"],
                    SupplierId     = 1,
                    DeliveryRegion = RegionShippingCost.Regions.UK,
                    ShippingAmount = 0.0m
                },
                new LineItem
                {
                    Amount         = 1.5m,
                    ProductId      = "1",
                    Shipping       = shippingOptions["CustomShipping"],
                    SupplierId     = 1,
                    DeliveryRegion = RegionShippingCost.Regions.RestOfTheWorld,
                    ShippingAmount = 2m
                },
                new LineItem
                {
                    Amount         = 1.5m,
                    ProductId      = "1",
                    Shipping       = shippingOptions["CustomShipping"],
                    SupplierId     = 1,
                    DeliveryRegion = RegionShippingCost.Regions.RestOfTheWorld,
                    ShippingAmount = 1.5m
                }
            };

            foreach (LineItem item in lineItemList)
            {
                addToBasket.Invoke(new AddToBasketRequest {
                    LineItem = item
                });
            }

            Basket basket = basketLoader.Invoke(new BasketRequest());

            foreach (LineItem item in basket.LineItems)
            {
                LineItem sampleListItem = lineItemList.FirstOrDefault(a => a.Id == item.Id);

                Assert.AreEqual(sampleListItem.SupplierId, item.SupplierId, "SupplierId are not equal");
                Assert.AreEqual(sampleListItem.DeliveryRegion, item.DeliveryRegion, "Region are not equal");
                Assert.AreEqual(sampleListItem.ShippingAmount, item.ShippingAmount, "Amount are not equal");
            }
        }
Пример #4
0
 public async Task <ActionResult <BasketDTO> > AddProductToBasket(AddToBasketCommand command)
 {
     return(await Mediator.Send(command));
 }