Пример #1
0
        public ActionResult OrderHistoryDetails(DateTime?orderDate)  //id - номер заказа
        {
            UserOrderDetailsViewModel   orderDetails      = new UserOrderDetailsViewModel();
            List <UserOrderDetailsItem> orderDetailsItems = new List <UserOrderDetailsItem>();

            using (var client = new OrderServiceClient()) // получаем данные заказа
            {
                //надо найти сам заказа
                var order = client.GetOrders().FirstOrDefault(o => o.OrderDate == orderDate);
                orderDetails.Id         = order.Id;
                orderDetails.UserName   = System.Web.HttpContext.Current.User.Identity.Name;
                orderDetails.OrderPrice = order.OrderPrice;
                orderDetails.Details    = new Func <IEnumerable <UserOrderDetailsItem> >(() =>
                {
                    foreach (var orderItem in client.GetOrderDetails().Where(o => o.OrderId == order.Id))
                    {
                        orderDetailsItems.Add(new UserOrderDetailsItem
                        {
                            Id          = orderItem.Id,
                            ProductName = orderItem.Product,
                            Quantity    = orderItem.Quantity,
                            TotalPrice  = orderItem.TotalPrice
                        });
                    }
                    return(orderDetailsItems.AsEnumerable());
                })();
            }
            return(View(orderDetails)); //UserOrderDetailsViewModel
        }
Пример #2
0
        // /Orders/UserOrders/UserOrderDetails
        public UserOrderDetailsViewModel GetUserDetailsById(int id)
        {
            var order = this.ordersRepository.All().Where(x => x.Id == id).FirstOrDefault();

            if (order is null)
            {
                throw new ArgumentException("Order not exists.");
            }

            var model = new UserOrderDetailsViewModel()
            {
                CreatedOn = order.CreatedOn.ToLocalTime().ToString("dd/MM/yyyy HH:mm"),
                OrderId   = order.Id,
                TakeAway  = order.TakeAway,

                CartItems = order.Bag.CartItems
                            .Select(x => new ShopingItemsViewModel()
                {
                    ProductId    = x.ProductId,
                    ProductName  = x.Product.Name,
                    ProductPrice = x.Size.Price,
                    Quantity     = x.Quantity,
                    Description  = x.Description,
                    Size         = new ProductSizeViewModel()
                    {
                        SizeName = this.sizeRepository
                                   .All()
                                   .Where(s => s.MenuProductId == x.ProductId)
                                   .Count() > 1 ? x.Size.SizeName : null,
                    },
                    Extras = x.ExtraItems
                             ?.Select(e => new ExtraCartItemModel()
                    {
                        Name     = e.Extra.Name,
                        Price    = e.Extra.Price,
                        Quantity = e.Quantity,
                    }).ToList(),
                }).ToList(),
                Status        = order.Status,
                PackagesPrice = order.Bag.CartItems.Sum(x => (decimal)Math.Ceiling((double)x.Size.MaxProductsInPackage / x.Quantity) * x.Size.Package.Price),
            };

            model.TotalPrice = model.CartItems.Sum(x => x.ItemPrice) + model.PackagesPrice;

            if (order.DeliveryTaxId.HasValue)
            {
                var x = this.deliveryTaxRepository.All().Where(x => x.Id == order.DeliveryTaxId).FirstOrDefault().Price;
                model.TotalPrice += x;
                model.DeliveryFee = x;
            }

            if (model.Status != OrderStatus.Unprocessed)
            {
                model.TimeForDelivery = order.ProcessingTime.ToLocalTime().AddMinutes((double)order.MinutesForDelivery).ToString("dd/MM/yyyy HH:mm");
            }

            return(model);
        }
Пример #3
0
        public IActionResult UserOrderDetails(int Id)
        {
            UserOrderDetailsViewModel model = new UserOrderDetailsViewModel();

            model.UserOrder    = _userOrderRepository.GetOrder(Id);
            model.OrderedItems = _userOrderItemRepository.GettIemsOfOrderId(model.UserOrder.OrderId);

            return(View(model));
        }
Пример #4
0
        // GET: AccountOrders
        public async Task <IActionResult> Order(int id)
        {
            UserModel  user  = _userService.GetCurrentUser(HttpContext);
            OrderModel order = await _orderService.GetOrderById(id);

            if (order.User.ID != user.ID)
            {
                return(RedirectToAction("Orders"));
            }
            var products = await _productService.GetProductsByIdList(order.Cart.ItemList.Select(id => id.ProductId).ToList());

            UserOrderDetailsViewModel userOrderDetailsViewModel = new UserOrderDetailsViewModel();

            userOrderDetailsViewModel.order    = order;
            userOrderDetailsViewModel.products = products;
            var contact = _contactService.Get();

            ViewData["contact"] = contact;
            var categories = await _categoryService.GetAll();

            ViewData["Categories"] = categories;
            return(View(userOrderDetailsViewModel));
        }