public IActionResult OrderNow(string UserPhone = "", string Password = "") { if (UserPhone == "" || Password == "") { return(RedirectToAction(nameof(ClientLogin))); } if (IsClient(UserPhone, Password)) { var Client = _context.Members.FirstOrDefault(c => c.Phone == UserPhone); var CartItemsTotal = _context.Carts.Where(c => c.MemberId == Client.Id).Select(c => c.Value).Sum(); var model = new OrderNowViewModel() { Total = CartItemsTotal, UserPhone = Client.Phone, Cities = _context.Cities.ToList() }; return(View(model)); } return(RedirectToAction(nameof(ClientLogin))); }
public IActionResult OrderConfirm(OrderNowViewModel model) { if (ModelState.IsValid) { if (model.LoginedUserPhone == "" || model.Password == "") { return(RedirectToAction(nameof(ClientLogin))); } if (IsClient(model.LoginedUserPhone, model.Password)) { var Client = _context.Members.FirstOrDefault(c => c.Phone == model.LoginedUserPhone); var CartItems = _context.Carts.Where(c => c.MemberId == Client.Id).ToList(); var city = _context.Cities.FirstOrDefault(c => c.Id == model.CityId); if (CartItems.Count == 0) { return(RedirectToAction(nameof(Index))); } if (city == null) { return(View(model)); } var TotalAmount = CartItems.Select(c => c.Value).Sum(); var TotalAmountWithDelivery = TotalAmount + city.DeliveryService; var date = DateTime.UtcNow.ToString(new CultureInfo("ar-EG")); var order = new Order() { Name = model.UserName, Date = date, Address = model.Address, Total = TotalAmountWithDelivery, Notes = model.Notes, Phone = model.UserPhone, LoginedPhone = model.LoginedUserPhone, State = "waiting", DeliveryService = city.DeliveryService, CityId = city.Id, DeliveryDate = model.DeliveryDate }; _context.Orders.Add(order); _context.SaveChanges(); var ThisOrder = _context.Orders.ToList().LastOrDefault(o => o.LoginedPhone == model.LoginedUserPhone); if (ThisOrder != null) { var OrderDetails = from c in CartItems select new OrderDetails() { Value = c.Value, Quantity = c.Quantity, Price = c.Price, UnitId = c.UnitId, ItemId = c.ItemId, MemberId = c.MemberId, OrderId = ThisOrder.Id }; _context.OrderDetails.AddRange(OrderDetails); _context.SaveChanges(); _context.Carts.RemoveRange(CartItems); _context.SaveChanges(); return(RedirectToAction(nameof(Index))); } } } return(View(model)); }