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; } }
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; } }