Ejemplo n.º 1
0
        public async Task <IActionResult> GetOrderDetails(int Id)
        {
            OrderHeaderAndOrderDetailsViewModel orderDetailsVM = new OrderHeaderAndOrderDetailsViewModel()
            {
                OrderHeader      = await _db.OrderHeaders.Include(u => u.ApplicationUser).Where(u => u.OrderHeaderId == Id).FirstOrDefaultAsync(),
                OrderDetailsList = await _db.OrderDetails.Where(u => u.OrderId == Id).ToListAsync()
            };

            return(PartialView("_IndividualOrderDetailsPartial", orderDetailsVM));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> Confirm(int id)
        {
            var claimsIdentity = (ClaimsIdentity)User.Identity;
            var claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier).Value;

            OrderHeaderAndOrderDetailsViewModel detailsVM = new OrderHeaderAndOrderDetailsViewModel()
            {
                OrderHeader      = await _db.OrderHeaders.Include(u => u.ApplicationUser).Where(u => u.OrderHeaderId == id && u.ApplicationUserId == claim).FirstOrDefaultAsync(),
                OrderDetailsList = await _db.OrderDetails.Where(u => u.OrderId == id).ToListAsync()
            };

            return(View(detailsVM));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> ManageOrder()
        {
            List <OrderHeaderAndOrderDetailsViewModel> orderDetailsVM = new List <OrderHeaderAndOrderDetailsViewModel>();

            List <OrderHeader> OrderHeaderList = await _db.OrderHeaders
                                                 .Where(o => o.Status == SD.StatusSubmitted || o.Status == SD.StatusInProcess)
                                                 .OrderByDescending(o => o.PickUpTime).ToListAsync();

            foreach (var orderHeader in OrderHeaderList)
            {
                OrderHeaderAndOrderDetailsViewModel invidualOrder = new OrderHeaderAndOrderDetailsViewModel()
                {
                    OrderHeader      = orderHeader,
                    OrderDetailsList = await _db.OrderDetails.Where(u => u.OrderId == orderHeader.OrderHeaderId).ToListAsync()
                };
                orderDetailsVM.Add(invidualOrder);
            }

            return(View(orderDetailsVM.OrderBy(o => o.OrderHeader.PickUpTime)));
        }
Ejemplo n.º 4
0
        public async Task <IActionResult> OrderHistory(int productPage = 1)
        {
            var claimsIdentity = (ClaimsIdentity)User.Identity;
            var claim          = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier).Value;

            OrderHeaderAndOrderDetailsListViewModel OrderAndPaging = new OrderHeaderAndOrderDetailsListViewModel()
            {
                OrderList = new List <OrderHeaderAndOrderDetailsViewModel>()
            };

            List <OrderHeader> OrderHeaderList = await _db.OrderHeaders.Include(u => u.ApplicationUser).Where(u => u.ApplicationUserId == claim).ToListAsync();

            foreach (var orderHeader in OrderHeaderList)
            {
                OrderHeaderAndOrderDetailsViewModel invidualOrder = new OrderHeaderAndOrderDetailsViewModel()
                {
                    OrderHeader      = orderHeader,
                    OrderDetailsList = await _db.OrderDetails.Where(u => u.OrderId == orderHeader.OrderHeaderId).ToListAsync()
                };
                OrderAndPaging.OrderList.Add(invidualOrder);
            }

            var count = OrderAndPaging.OrderList.Count;

            OrderAndPaging.OrderList = OrderAndPaging.OrderList.OrderByDescending(p => p.OrderHeader.OrderHeaderId)
                                       .Skip((productPage - 1) * PageSize).Take(PageSize)
                                       .ToList();

            OrderAndPaging.PagingInfo = new PagingInfo()
            {
                CurrentPage  = productPage,
                ItemsPerPage = PageSize,
                TotalItems   = count,
                UrlParam     = "/Customer/Order/OrderHistory?productPage=:"
            };

            return(View(OrderAndPaging));
        }
Ejemplo n.º 5
0
        public async Task <IActionResult> OrderPickup(int productPage = 1, string searchName = null, string searchPhone = null, string searchEmail = null)
        {
            //var claimsIdentity = (ClaimsIdentity)User.Identity;
            //var claim = claimsIdentity.FindFirst(ClaimTypes.NameIdentifier).Value;

            OrderHeaderAndOrderDetailsListViewModel OrderAndPaging = new OrderHeaderAndOrderDetailsListViewModel()
            {
                OrderList = new List <OrderHeaderAndOrderDetailsViewModel>()
            };

            StringBuilder param = new StringBuilder();

            param.Append("/Customer/Order/OrderPickup?productPage=:");
            param.Append("&searchName=");
            if (searchName != null)
            {
                param.Append(searchName);
            }
            param.Append("&searchPhone=");
            if (searchPhone != null)
            {
                param.Append(searchPhone);
            }
            param.Append("&searchName=");
            if (searchEmail != null)
            {
                param.Append(searchEmail);
            }


            List <OrderHeader> OrderHeaderList = new List <OrderHeader>();
            ApplicationUser    user            = new ApplicationUser();

            if (searchName != null || searchPhone != null || searchEmail != null)
            {
                if (searchName != null)
                {
                    OrderHeaderList = _db.OrderHeaders
                                      .Include(o => o.ApplicationUser)
                                      .AsEnumerable()
                                      .Where(u => u.PickUpName.ToLower().Contains(searchName.ToString().ToLower()))
                                      .OrderByDescending(o => o.PickUpDate).ToList();
                }
                else
                {
                    if (searchEmail != null)
                    {
                        user = await _db.ApplicationUsers.Where(u => u.Email.ToLower().Contains(searchEmail.ToLower())).FirstOrDefaultAsync();

                        OrderHeaderList = _db.OrderHeaders
                                          .Include(o => o.ApplicationUser)
                                          .AsEnumerable()
                                          .Where(o => o.ApplicationUserId == user.Id)
                                          .OrderByDescending(o => o.PickUpDate).ToList();
                    }
                    else
                    {
                        if (searchPhone != null)
                        {
                            OrderHeaderList = _db.OrderHeaders
                                              .AsEnumerable()
                                              .Where(o => o.PhoneNumber == searchPhone)
                                              .OrderByDescending(o => o.PickUpDate).ToList();
                        }
                    }
                }
            }
            else
            {
                OrderHeaderList = await _db.OrderHeaders.Include(u => u.ApplicationUser).Where(u => u.Status == SD.StatusReady).ToListAsync();
            }

            foreach (var orderHeader in OrderHeaderList)
            {
                OrderHeaderAndOrderDetailsViewModel invidualOrder = new OrderHeaderAndOrderDetailsViewModel()
                {
                    OrderHeader      = orderHeader,
                    OrderDetailsList = await _db.OrderDetails.Where(u => u.OrderId == orderHeader.OrderHeaderId).ToListAsync()
                };
                OrderAndPaging.OrderList.Add(invidualOrder);
            }

            var count = OrderAndPaging.OrderList.Count;

            OrderAndPaging.OrderList = OrderAndPaging.OrderList.OrderByDescending(p => p.OrderHeader.OrderHeaderId)
                                       .Skip((productPage - 1) * PageSize).Take(PageSize)
                                       .ToList();

            OrderAndPaging.PagingInfo = new PagingInfo()
            {
                CurrentPage  = productPage,
                ItemsPerPage = PageSize,
                TotalItems   = count,
                UrlParam     = param.ToString()
            };

            return(View(OrderAndPaging));
        }