public OrderProductAddressDeliverySizeViewModel(OrderProductAddressDeliverySize orderProductAddressDeliverySize)
 {
     OrderProductAddressDelivery = new OrderProductAddressDeliveryViewModel(orderProductAddressDeliverySize.OrderProductAddressDelivery);
     Size               = new SizeViewModel(orderProductAddressDeliverySize.Size);
     DeliveryQuantity   = orderProductAddressDeliverySize.DeliveryQuantity;
     AcceptanceQuantity = orderProductAddressDeliverySize.AcceptanceQuantity;
 }
Exemple #2
0
        public async Task <ActionResult> AddAllSizesToOrderProductAddressAcceptance(OrderProductAddressDeliveryViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            OrderProductAddressDelivery orderProductAddressDelivery = await context.OrderProductAddressDeliveries
                                                                      .Include(opad => opad.OrderProductAddress.OrderProduct.Order)
                                                                      .Include(opad => opad.OrderProductAddress.OrderProduct.Product)
                                                                      .Include(opad => opad.OrderProductAddress.Address)
                                                                      .Include(opad => opad.OrderProductAddressDeliverySizes)
                                                                      .FirstOrDefaultAsync(opad => opad.OrderId == model.OrderProductAddress.OrderProduct.Order.Id &&
                                                                                           opad.ProductId == model.OrderProductAddress.OrderProduct.Product.Id &&
                                                                                           opad.AddressId == model.OrderProductAddress.Address.Id &&
                                                                                           opad.DeliveryId == model.DeliveryId);

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

            foreach (var orderProductAddressDeliverySize in orderProductAddressDelivery.OrderProductAddressDeliverySizes)
            {
                orderProductAddressDeliverySize.AcceptanceQuantity = orderProductAddressDeliverySize.DeliveryQuantity;

                context.Entry(orderProductAddressDeliverySize).State = EntityState.Modified;
            }

            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
            {
                orderId = orderProductAddressDelivery.OrderId,
                productId = orderProductAddressDelivery.ProductId,
                addressId = orderProductAddressDelivery.AddressId,
                deliveryId = orderProductAddressDelivery.DeliveryId
            }));
        }
Exemple #3
0
        public async Task <ActionResult> AddAllSizesToOrderProductAddressAcceptance(int?orderId, int?productId, int?addressId, int?deliveryId)
        {
            if (orderId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (productId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (addressId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            if (deliveryId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            OrderProductAddressDelivery orderProductAddressDelivery = await context.OrderProductAddressDeliveries
                                                                      .Include(opad => opad.OrderProductAddress.OrderProduct.Order)
                                                                      .Include(opad => opad.OrderProductAddress.OrderProduct.Product)
                                                                      .Include(opad => opad.OrderProductAddress.Address)
                                                                      .Include(opad => opad.OrderProductAddressDeliverySizes)
                                                                      .Include(opad => opad.OrderProductAddressDeliverySizes.Select(opads => opads.Size))
                                                                      .FirstOrDefaultAsync(opad => opad.OrderId == orderId &&
                                                                                           opad.ProductId == productId &&
                                                                                           opad.AddressId == addressId &&
                                                                                           opad.DeliveryId == deliveryId);

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

            OrderProductAddressDeliveryViewModel model = new OrderProductAddressDeliveryViewModel(orderProductAddressDelivery);

            if (orderProductAddressDelivery.OrderProductAddressDeliverySizes.Any())
            {
                foreach (var orderProductAddressDeliverySize in orderProductAddressDelivery.OrderProductAddressDeliverySizes)
                {
                    model.OrderProductAddressDeliverySizes.Add(new OrderProductAddressDeliverySizeViewModel(orderProductAddressDeliverySize));
                }
            }

            return(View(model));
        }