示例#1
0
        public async Task <IActionResult> EditProduct(int id, DetailsViewModel model)
        {
            var tea = _teaRepository.GetTeaById(id);

            if (ModelState.IsValid)
            {
                _mapper.Map(model, tea);
                _teaRepository.UpdateTea(tea);

                if (await _teaRepository.SaveAsync())
                {
                    ViewData["StatusMessageOk"] = "Produkt został zaktualizowany.";
                    var updatedTea = _mapper.Map <Tea, DetailsViewModel>(tea);
                    return(View(updatedTea));
                }
                else
                {
                    ViewData["StatusMessageBad"] = "Wystapił błąd. Nie udało się zaktualizować produktu.";
                }
            }
            ;
            return(View(model));
        }
示例#2
0
        public async Task <IActionResult> AddOrder(OrderViewModel model)
        {
            var user = await GetCurrentUserAsync();

            if (user == null)
            {
                return(View("Error"));
            }

            if (!ModelState.IsValid)
            {
                return(View("Index", model));
            }

            _mapper.Map(model, user);
            var result = await _userManager.UpdateAsync(user);

            if (!result.Succeeded)
            {
                return(RedirectToAction("Index", new { MessageBad = "Wystapił błąd. Nie udało się zaktualizować danych adresowych." }));
            }

            var newOrder = new OrderViewModel
            {
                CustomerId  = user.Id,
                Date        = DateTime.Now,
                TotalAmount = _cartRepository.GetTotalAmount(),
                Payment     = model.Payment,
                Delivery    = model.Delivery
            };
            var orderEntity = _mapper.Map <OrderViewModel, Order>(newOrder);

            orderEntity.OrderTeas = _cartRepository.Cart;
            _orderRepository.AddOrder(orderEntity);

            if (!await _orderRepository.SaveAsync())
            {
                return(RedirectToAction("Index", new { MessageBad = "Wystapił błąd. Nie udało się złozyć zamówienia." }));
            }

            foreach (var orderTea in orderEntity.OrderTeas)
            {
                _teaRepository.DecreaseQuantity(orderTea.TeaId, orderTea.Quantity);
                await _teaRepository.SaveAsync();
            }
            return(RedirectToAction("OrderCompleted"));
        }