Пример #1
0
        public async Task <ActionResult> AddProductToOrder(AddProductToOrderViewModel model)
        {
            Order order = await context.Orders.FindAsync(model.Order.Id);

            if (order == null)
            {
                return(HttpNotFound());
            }

            if (!ModelState.IsValid)
            {
                model.AvailableProducts = GetAvailableProducts(order, model.ProductId);

                return(View(model));
            }

            Product product = await context.Products.FindAsync(model.ProductId);

            if (product == null)
            {
                return(HttpNotFound());
            }

            context.OrderProducts.Add(new OrderProduct
            {
                Order   = order,
                Product = product,
                Price   = model.Price
            });

            try
            {
                await context.SaveChangesAsync();
            }
            catch (Exception ex)
            {
                string errorMessage = ex.Message;

                while (ex != null)
                {
                    errorMessage = ex.Message;
                    ex           = ex.InnerException;
                }

                ModelState.AddModelError("", errorMessage);

                return(View(model));
            }

            return(RedirectToAction(nameof(Details), new { id = order.Id }));
        }
        public async Task <ActionResult> Post(AddProductToOrderViewModel model)
        {
            var productsResponse = await GetAsync(HttpClients.ProductApi, "products");

            var products = await productsResponse.ResultAsync <IEnumerable <ProductViewModel> >();

            var command = CommandMapper.Map <AddProductToOrder>(model);

            command.Price  = products.First(p => p.Sku == command.Sku).Price;
            command.UserId = Constants.DefaultUserId;
            await Bus.Send(command);

            return(Accepted());
        }
Пример #3
0
        public IActionResult AddingProduct(int orderId)
        {
            if (!this.orders.Exists(orderId))
            {
                return(this.BadRequest());
            }

            var order        = this.orders.FindById(orderId);
            var dataProducts = this.products.ListingProducts();

            var addProductToOrderViewModel = new AddProductToOrderViewModel
            {
                OrderId      = order.Id,
                DataProducts = dataProducts
            };

            return(this.View(addProductToOrderViewModel));
        }
Пример #4
0
        public async Task <ActionResult> AddProductToOrder(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            Order order = await context.Orders
                          .Include(o => o.OrderProducts)
                          .FirstOrDefaultAsync(o => o.Id == id);

            if (order == null)
            {
                return(HttpNotFound());
            }

            AddProductToOrderViewModel model = new AddProductToOrderViewModel();

            model.Order             = new OrderViewModel(order);
            model.AvailableProducts = GetAvailableProducts(order);

            return(View(model));
        }