Ejemplo n.º 1
0
        public IActionResult OrderList(string name, int page = 1, SortStateTwo sortOrderTwo = SortStateTwo.NameAsc)
        {
            int pageSize        = 10;
            var currentUserName = User.Identity.Name;
            var userId          = _userManagerService.GetUserByName(currentUserName);
            var source          = _orderService.OrdersForCurrentProvider(userId.Result.Id);

            if (!String.IsNullOrEmpty(name))
            {
                source = source.Where(p => p.Name.Contains(name));
            }

            // сортировка
            switch (sortOrderTwo)
            {
            case SortStateTwo.NameDesc:
                source = source.OrderByDescending(s => s.Name);
                break;

            case SortStateTwo.DateAsc:
                source = source.OrderBy(s => s.OrderPlaced);
                break;

            case SortStateTwo.DateDesc:
                source = source.OrderByDescending(s => s.OrderPlaced);
                break;

            default:
                source = source.OrderBy(s => s.Name);
                break;
            }


            var count = source.Count();
            var items = source.Skip((page - 1) * pageSize).Take(pageSize).ToList();

            PageViewModel  pageViewModel = new PageViewModel(count, page, pageSize);
            OrderViewModel viewModel     = new OrderViewModel()
            {
                PageViewModel        = pageViewModel,
                OrderFilterViewModel = new OrderFilterViewModel(name),
                OrderSortViewModel   = new OrderSortViewModel(sortOrderTwo),
                Orders = items
            };

            return(View(viewModel));
        }
Ejemplo n.º 2
0
 public OrderSortViewModel(SortStateTwo sortOrderTwo)
 {
     NameSort = sortOrderTwo == SortStateTwo.NameAsc ? SortStateTwo.NameDesc : SortStateTwo.NameAsc;
     DateSort = sortOrderTwo == SortStateTwo.DateAsc ? SortStateTwo.DateDesc : SortStateTwo.DateAsc;
     Current  = sortOrderTwo;
 }