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)); }
public OrderSortViewModel(SortStateTwo sortOrderTwo) { NameSort = sortOrderTwo == SortStateTwo.NameAsc ? SortStateTwo.NameDesc : SortStateTwo.NameAsc; DateSort = sortOrderTwo == SortStateTwo.DateAsc ? SortStateTwo.DateDesc : SortStateTwo.DateAsc; Current = sortOrderTwo; }