public async Task <IActionResult> Confirm(int id) { var CIdentity = (ClaimsIdentity)this.User.Identity; var claim = CIdentity.FindFirst(ClaimTypes.NameIdentifier); OrderDeatilsVM orderDeatilsVM = new OrderDeatilsVM() { orders = await _db.Orders.Include(o => o.ApplicationUser).FirstOrDefaultAsync(o => o.Id == id && o.ApplicationUserId == claim.Value), lstOrderDetails = await _db.OrderDetails.Where(o => o.OrderId == id).ToListAsync() }; return(View(orderDeatilsVM)); }
public async Task <IActionResult> GetOrderDetails(int id) { OrderDeatilsVM orderDeatilsVM = new OrderDeatilsVM() { orders = await _db.Orders.FirstOrDefaultAsync(m => m.Id == id), lstOrderDetails = await _db.OrderDetails.Where(m => m.OrderId == id).ToListAsync() }; orderDeatilsVM.orders.ApplicationUser = await _db.ApplicationUsers.FirstOrDefaultAsync(u => u.Id == orderDeatilsVM.orders.ApplicationUserId); return(PartialView("_IndividualOrderDetails", orderDeatilsVM)); }
public async Task <IActionResult> ManageOrder() { List <OrderDeatilsVM> orderDetailsVM = new List <OrderDeatilsVM>(); List <Orders> OrderHeaderList = await _db.Orders.Where(o => o.Status == SD.OrderSubmitted || o.Status == SD.OrderProcess).OrderByDescending(u => u.PicupTime).ToListAsync(); foreach (Orders order in OrderHeaderList) { OrderDeatilsVM orderDeatils = new OrderDeatilsVM { orders = order, lstOrderDetails = await _db.OrderDetails.Where(o => o.OrderId == order.Id).ToListAsync() }; orderDetailsVM.Add(orderDeatils); } return(View(orderDetailsVM.OrderBy(o => o.orders.PicupTime).ToList())); }
//[ActionName("OrderPickup")] public async Task <IActionResult> OrderPickup(OrderDeatilsVM value) { Orders order = await _db.Orders.FindAsync(value.orders.Id); order.Status = SD.OrderDone; await _db.SaveChangesAsync(); var CIdentity = (ClaimsIdentity)this.User.Identity; var claim = CIdentity.FindFirst(ClaimTypes.NameIdentifier); var subject = "Spice -- Order " + order.Id + " Picked"; var email = _db.Users.Where(u => u.Id == claim.Value).FirstOrDefault(); var name = _db.ApplicationUsers.Where(u => u.Id == claim.Value).FirstOrDefault(); var body = "Your Order is picked up"; await _es.SendEmailAsync(name.Email, subject, body); return(RedirectToAction(nameof(OrderPickup), order)); }
public async Task <IActionResult> OrderHistory(int productPage = 1) { var CIdentity = (ClaimsIdentity)this.User.Identity; var claim = CIdentity.FindFirst(ClaimTypes.NameIdentifier); OrderListVM orderListVM = new OrderListVM() { Orders = new List <OrderDeatilsVM>() }; List <Orders> orders = await _db.Orders.Include(o => o.ApplicationUser).Where(o => o.ApplicationUserId == claim.Value).ToListAsync(); foreach (Orders order in orders) { OrderDeatilsVM deatilsVM = new OrderDeatilsVM { orders = order, lstOrderDetails = await _db.OrderDetails.Where(o => o.OrderId == order.Id).ToListAsync() }; orderListVM.Orders.Add(deatilsVM); } var count = orderListVM.Orders.Count; orderListVM.Orders = orderListVM.Orders.OrderByDescending(p => p.orders.Id).Skip((productPage - 1) * PageSize).Take(PageSize).ToList(); orderListVM.pagingInfo = new PagingInfo { CurrentPage = productPage, ItemsPerPage = PageSize, TotalItem = count, urlParam = "/Customer/Orders/OrderHistory?productPage=:" }; return(View(orderListVM)); }
public async Task <IActionResult> OrderPickup(int productPage = 1, string searchName = null, string searchEmail = null, string searchPhone = null) { //var CIdentity = (ClaimsIdentity)this.User.Identity; //var claim = CIdentity.FindFirst(ClaimTypes.NameIdentifier); OrderListVM orderListVM = new OrderListVM() { Orders = new List <OrderDeatilsVM>() }; StringBuilder sb = new StringBuilder(); sb.Append("/Customer/Orders/OrderPickup?productPage=:"); sb.Append("&searchName="); if (searchName != null) { sb.Append(searchName); } sb.Append("&searchEmail="); if (searchEmail != null) { sb.Append(searchEmail); } sb.Append("&searchPhone="); if (searchPhone != null) { sb.Append(searchPhone); } List <Orders> orders = new List <Orders>(); if (searchName != null || searchEmail != null || searchPhone != null) { var user = new ApplicationUser(); if (searchName != null) { orders = await _db.Orders.Include(o => o.ApplicationUser).Where(u => u.PickupName.ToLower().Contains(searchName.ToLower())).OrderByDescending(o => o.OrderDate).ToListAsync(); } else if (searchEmail != null) { user = await _db.ApplicationUsers.Where(u => u.Email.ToLower().Contains(searchEmail.ToLower())).FirstOrDefaultAsync(); orders = await _db.Orders.Include(o => o.ApplicationUser).Where(o => o.ApplicationUserId == user.Id).OrderByDescending(o => o.OrderDate).ToListAsync(); } else if (searchPhone != null) { orders = await _db.Orders.Include(o => o.ApplicationUser).Where(u => u.Phone.Contains(searchPhone)).OrderByDescending(o => o.OrderDate).ToListAsync(); } } else { orders = await _db.Orders.Include(o => o.ApplicationUser).Where(o => o.Status == SD.OrderReady).ToListAsync(); } foreach (Orders order in orders) { OrderDeatilsVM deatilsVM = new OrderDeatilsVM { orders = order, lstOrderDetails = await _db.OrderDetails.Where(o => o.OrderId == order.Id).ToListAsync() }; orderListVM.Orders.Add(deatilsVM); } var count = orderListVM.Orders.Count; orderListVM.Orders = orderListVM.Orders.OrderByDescending(p => p.orders.Id).Skip((productPage - 1) * PageSize).Take(PageSize).ToList(); orderListVM.pagingInfo = new PagingInfo { CurrentPage = productPage, ItemsPerPage = PageSize, TotalItem = count, urlParam = sb.ToString() }; return(View(orderListVM)); }