Ejemplo n.º 1
0
        public async Task <IActionResult> DeliveryToHome(DeliveryToHomeViewModel model)
        {
            var          userId      = User.GetId();
            IOrderStates orderStates = new ToHomeDeliveryOrder();
            var          entry       = _dbContext.ShoppingCartEntries.Where(u => u.UserId == userId).Include(e => e.Product).ToList();
            var          order       = new Order()
            {
                UserId         = userId,
                DeliveryMethod = DeliveryMethods.DeliveryToHome.GetString,
                CreateDate     = DateTime.Now,
                State          = orderStates.GetDefaultState(),
                OrderItems     = new Collection <OrderItems>(entry.Select(s => new OrderItems()
                {
                    ProductName     = s.Product.Name,
                    ProductPrice    = s.Product.Price,
                    ProductQuantity = s.Quantity,
                    ProductId       = s.ProductId,
                }).ToList()),
                TotalCount = entry.Sum(s => s.Quantity),
                TotalPrice = entry.Sum(s => s.Quantity * s.Product.Price),
                Address    = model.Address,
            };

            _dbContext.Orders.Add(order);
            _dbContext.ShoppingCartEntries.RemoveRange(entry);
            await _dbContext.SaveChangesAsync();

            return(RedirectToAction("Orders", "Profile"));
        }
Ejemplo n.º 2
0
        public IActionResult DeliveryToHome()
        {
            var userId  = User.GetId();
            var user    = _dbContext.Users.ById(userId).FirstOrDefault();
            var entries = _dbContext.ShoppingCartEntries.Where(s => s.UserId == userId).Select(s => new { count = s.Quantity, price = s.Product.Price }).ToList();
            var model   = new DeliveryToHomeViewModel()
            {
                FirstName  = user?.Name,
                LastName   = user?.Surname,
                Email      = user?.Email,
                TotalCount = entries.Sum(e => e.count),
                TotalPrice = entries.Sum(e => e.count * e.price),
            };

            return(View("CreateToHomeOrder", model));
        }