Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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()));
        }
Ejemplo n.º 4
0
        //[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));
        }
Ejemplo n.º 5
0
        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));
        }
Ejemplo n.º 6
0
        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));
        }