public IActionResult Payment() { try { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); var orderSummery = _context.Cart.Where(p => p.CustomerId == userId).ToList(); OrderPlaceViewModel orderPlace = new OrderPlaceViewModel(); orderPlace.OrderDetail = orderSummery; orderPlace.ShippingDetail = GetShippingCharges(orderSummery); return(View("Payment", orderPlace)); } catch (Exception e) { throw; } }
public IActionResult Index(string Id) { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); OrderPlaceViewModel orderPlace = new OrderPlaceViewModel(); orderPlace.Account = _context.Account.Find(userId); var addresses = _context.Address.Where(p => p.UserId == userId); foreach (var address in addresses) { orderPlace.Address = address; } var detail = _context.Cart.Where(p => p.CustomerId == userId).ToList(); orderPlace.OrderDetail = detail; orderPlace.VendorId = Id; return(View(orderPlace)); }
public async Task <IActionResult> Payment(OrderPlaceViewModel orderPlace) { var userId = this.User.FindFirstValue(ClaimTypes.NameIdentifier); var carts = _context.Cart.Where(p => p.CustomerId == userId).ToList(); string vendorId = ""; foreach (var cart in carts) { vendorId = cart.VendorId; } Order order = new Order(); order.CustomerId = userId; order.DateCreation = DateTime.Now.Date; order.VendorId = vendorId; order.OrderStatusId = 1; order.PaymentId = 1; _context.Order.Add(order); await _context.SaveChangesAsync(); var orderId = order.Id; foreach (var cart in carts) { TopSelling topmodel = new TopSelling(); var topseller = _context.TopSelling.FirstOrDefault(p => p.ProductId == cart.ProductId); if (topseller != null) { topmodel = topseller; topmodel.Count = topseller.Count + 1; _context.TopSelling.Update(topseller); await _context.SaveChangesAsync(); } else { topmodel = new TopSelling { ProductId = cart.ProductId, Count = 1 }; _context.TopSelling.Add(topmodel); await _context.SaveChangesAsync(); } OrderDetail model = new OrderDetail(); model.OrderId = orderId; model.ProductId = cart.ProductId; model.ProductName = cart.ProductName; model.Color = cart.Color; model.Size = cart.Size; model.OriginalTotal = cart.OriginalPrice * cart.Quantity; model.ShippingCharge = orderPlace.ShippingCharges; if (carts.Count() > 1 || cart.Quantity > 1) { if (carts.Count > 1) { model.TotalPrice = cart.ComboPrice * cart.Quantity; } else { model.TotalPrice = cart.DiscountPrice * cart.Quantity; } } else { model.TotalPrice = cart.OriginalPrice; } model.Quantity = cart.Quantity; _context.OrdersDetail.Add(model); await _context.SaveChangesAsync(); } foreach (var cart in carts) { int Id = cart.ProductId; var product = _context.Products.Find(Id); int q = product.Quantity - cart.Quantity; Product model = new Product(); model = product; model.Quantity = q; _context.Products.Update(model); await _context.SaveChangesAsync(); } RemoveCarts(carts); return(RedirectToAction("Success", "Order", new { @Id = orderId })); }