public IActionResult Checkout(InputOrderModel newOrder) { ViewBag.TotalPrice = _accountService.GetTotalForCart(_userManager.GetUserId(User)); ViewBag.Title = "Karfa"; if (ModelState.IsValid) { _accountService.saveInputOrder(newOrder, _userManager.GetUserId(User)); return(RedirectToAction("Confirmation")); } return(View(newOrder)); }
public async Task <IActionResult> Checkout() { ViewBag.Title = "Greiðslusíða"; ViewBag.TotalPrice = _accountService.GetTotalForCart(_userManager.GetUserId(User)); var orderModel = new InputOrderModel(); var shippingInfoFromDb = _accountService.GetShippingInfo(_userManager.GetUserId(User)); var user = await _userManager.GetUserAsync(User); if (shippingInfoFromDb != null) { orderModel.Name = user.FirstName; orderModel.Email = user.Email; orderModel.Street = shippingInfoFromDb.Street; orderModel.Street = shippingInfoFromDb.Street; orderModel.City = shippingInfoFromDb.City; orderModel.PostalCode = shippingInfoFromDb.PostalCode; orderModel.Country = shippingInfoFromDb.Country; orderModel.SendingMethod = shippingInfoFromDb.SendingMethod; } return(View(orderModel)); }
public void saveInputOrder(InputOrderModel newOrder, string userId) { double totalPrice = GetTotalForCart(userId); var checkShippingInfoFromDb = _db.ShippingInfo.Where(u => u.UserId == userId).FirstOrDefault(); if (checkShippingInfoFromDb == null) { var newShippingInfo = new ShippingInfo { UserId = userId, Street = newOrder.Street, City = newOrder.City, PostalCode = newOrder.PostalCode, Country = newOrder.Country, SendingMethod = newOrder.SendingMethod }; //save and update _db.ShippingInfo.Add(newShippingInfo); _db.SaveChanges(); } var shippingInfoDb = _db.ShippingInfo.Where(u => u.UserId == userId).FirstOrDefault(); var order = new Order { CustomerId = userId, PaidDate = DateTime.Now, Total = totalPrice, ShippingInfoId = shippingInfoDb.Id, Status = "Paid" }; _db.Orders.Add(order); _db.SaveChanges(); //Get the orderId var orderFromDb = _db.Orders.Where(p => p.PaidDate == order.PaidDate).FirstOrDefault(); var cartItemsFromDb = _db.Cart.Where(u => u.UserId == userId).ToList(); foreach (var item in cartItemsFromDb) { var bookFromDb = _db.Books.Where(b => b.Id == item.BookId).FirstOrDefault(); var orderItem = new OrderItem { BookId = item.BookId, OrderId = orderFromDb.Id, Price = bookFromDb.Price, Quantity = item.Quantity, AuthorId = bookFromDb.AuthorId, Title = bookFromDb.Title }; _db.OrderItem.Add(orderItem); } //Delete from cart foreach (var item in cartItemsFromDb) { RemoveCart(item.Id); } _db.SaveChanges(); }
public void saveInputOrder(InputOrderModel newOrder, string userId) { _accountRepo.saveInputOrder(newOrder, userId); }