Exemple #1
0
 public IActionResult SaveEntity(BillViewModel billVm, List <BillDetailViewModel> BillDetails)
 {
     try
     {
         //if (!ModelState.IsValid)
         //{
         //    IEnumerable<ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors);
         //    return new BadRequestObjectResult(allErrors);
         //}
         if (billVm.Id.ToString() == CommonConstants.DefaultGuid)
         {
             _billService.Add(billVm, out var billId);
             if (BillDetails != null)
             {
                 foreach (var item in BillDetails)
                 {
                     item.BillId = billId;
                     _billService.AddDetail(item);
                 }
             }
         }
         else
         {
             _billService.Update(billVm, BillDetails);
         }
         _billService.Save();
         return(new OkObjectResult(billVm));
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #2
0
        public async Task <IActionResult> Checkout(CheckoutViewModel model)
        {
            try
            {
                var session = HttpContext.Session.Get <List <ShoppingCartViewModel> >(CommonConstants.CartSession);
                if (ModelState.IsValid)
                {
                    if (session != null)
                    {
                        var details = new List <BillDetailViewModel>();
                        foreach (var item in session)
                        {
                            details.Add(new BillDetailViewModel()
                            {
                                Price       = item.Price,
                                Color       = item.Color,
                                ProductName = item.Product.Name,
                                Code        = item.Product.Code,
                                //ColorId = item.Color.Id,
                                Quantity  = item.Quantity,
                                ProductId = item.Product.Id
                            });
                        }
                        var billViewModel = new BillViewModel()
                        {
                            CustomerMobile  = model.CustomerMobile,
                            BillStatus      = BillStatus.New,
                            CustomerAddress = model.CustomerAddress,
                            CustomerName    = model.CustomerName,
                            ShipMobile      = model.ShipMobile,
                            ShipAddress     = model.ShipAddress,
                            ShipName        = model.ShipName,
                            Status          = Infrastructure.Enums.Status.Actived,
                            PaymentMethod   = model.PaymentMethod,
                            //BillDetails = details
                        };

                        if (User.Identity.IsAuthenticated == true)
                        {
                            billViewModel.CustomerId = Guid.Parse(User.GetSpecificClaim("UserId"));
                        }

                        _billService.Add(billViewModel, out var billId);

                        if (details != null)
                        {
                            foreach (var item in details)
                            {
                                item.BillId = billId;
                                _billService.AddDetail(item);
                            }
                        }

                        try
                        {
                            _billService.Save();
                            //var content = await _viewRenderService.RenderToStringAsync("Cart/_BillMail", billViewModel);
                            //Send mail
                            //await _emailSender.SendEmailAsync(_configuration["MailSettings:AdminMail"], "Đặt hàng từ Rèm Đức Trung", content);
                            ViewData["Success"] = true;
                        }
                        catch (Exception ex)
                        {
                            ViewData["Success"] = false;
                            ModelState.AddModelError("", ex.Message);
                        }
                    }
                }
                model.Carts = session;
                return(View(model));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }