Esempio n. 1
0
        }                                                    //текущее значение сортировки

        public ClientSortViewModel(ClientSortState sortOrder)
        {
            FIOSort          = sortOrder == ClientSortState.FIOAsc ? ClientSortState.FIODesc : ClientSortState.FIOAsc;
            PassportDataSort = sortOrder == ClientSortState.PassportDataAsc ?
                               ClientSortState.PassportDataDesc : ClientSortState.PassportDataAsc;
            Current = sortOrder;
        }
Esempio n. 2
0
        public async Task <IActionResult> Index(string fio, int page = 1, ClientSortState sortOrder = ClientSortState.FIOAsc)
        {
            int pageSize = 5;

            //фильтрация
            IQueryable <Client> clients = db.Clients;

            if (!string.IsNullOrEmpty(fio))
            {
                clients = clients.Where(p => p.ClientFIO.Contains(fio));
            }

            // сортировка
            switch (sortOrder)
            {
            case ClientSortState.FIODesc:
                clients = clients.OrderByDescending(s => s.ClientFIO);
                break;

            case ClientSortState.PassportDataAsc:
                clients = clients.OrderBy(s => s.ClientPassportData);
                break;

            case ClientSortState.PassportDataDesc:
                clients = clients.OrderByDescending(s => s.ClientPassportData);
                break;

            default:
                clients = clients.OrderBy(s => s.ClientFIO);
                break;
            }

            // пагинация
            var count = await clients.CountAsync();

            var items = await clients.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            // формируем модель представления
            ClientsViewModel viewModel = new ClientsViewModel
            {
                PageViewModel         = new PageViewModel(count, page, pageSize),
                ClientSortViewModel   = new ClientSortViewModel(sortOrder),
                ClientFilterViewModel = new ClientFilterViewModel(fio),
                Clients = items
            };

            return(View(viewModel));
        }