public IActionResult SummaryPost() { var claimsIdentity = (ClaimsIdentity)User.Identity; var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier); var user = _applicationUserRepository.GetApplicationUserById(claim.Value); var carts = _cartRepository.GetCartsByUserId(claim.Value); var products = _productRepository.GetAll(); orderItemCartVM.CartList = carts.ToList(); orderItemCartVM.Order.ApplicationUserId = claim.Value; orderItemCartVM.Order.Status = OrderUtility.PaymentStatusPending; orderItemCartVM.Order.PaymentStatus = OrderUtility.PaymentStatusPending; orderItemCartVM.Order.OrderDate = DateTime.Now; orderItemCartVM.Order.PickupName = user.Name; orderItemCartVM.Order.PhoneNumber = user.PhoneNumber; _orderRepository.Create(orderItemCartVM.Order); var orderItemList = new List <OrderItem>(); foreach (var cart in orderItemCartVM.CartList) { var product = products.FirstOrDefault(p => p.Id.Equals(cart.ProductId)); var orderItem = new OrderItem { OrderId = orderItemCartVM.Order.Id, ProductId = product.Id, Count = cart.Count, Name = product.Name, Description = product.Description, Price = product.Price }; orderItemCartVM.Order.OrderTotal += orderItem.Count * orderItem.Price; orderItemList.Add(orderItem); } _orderItemRepository.CreateRange(orderItemList); _cartRepository.DeleteRange(orderItemCartVM.CartList); //return View(orderItemCartVM); return(RedirectToAction("Confirm", "Order", new { id = orderItemCartVM.Order.Id })); }