Ejemplo n.º 1
0
 public EmployesSortVM(EmployeeSortState sortOrder)
 {
     NameSort    = sortOrder == EmployeeSortState.NameAsc ? EmployeeSortState.NameDesc : EmployeeSortState.NameAsc;
     AgeSort     = sortOrder == EmployeeSortState.AgeAsc ? EmployeeSortState.AgeDesc : EmployeeSortState.AgeAsc;
     SurnameSort = sortOrder == EmployeeSortState.SurnameAsc ? EmployeeSortState.SurnameDesc : EmployeeSortState.SurnameAsc;
     Current     = sortOrder;
 }
Ejemplo n.º 2
0
        public static IQueryable <Employee> Sort(this IQueryable <Employee> employes, EmployeeSortState sortState)
        {
            switch (sortState)
            {
            case EmployeeSortState.NameAsc:
                employes = employes.OrderBy(e => e.Name);
                break;

            case EmployeeSortState.NameDesc:
                employes = employes.OrderByDescending(e => e.Name);
                break;

            case EmployeeSortState.SurnameAsc:
                employes = employes.OrderBy(e => e.Surname);
                break;

            case EmployeeSortState.SurnameDesc:
                employes = employes.OrderByDescending(e => e.Surname);
                break;

            case EmployeeSortState.AgeAsc:
                employes = employes.OrderBy(e => e.Age);
                break;

            case EmployeeSortState.AgeDesc:
                employes = employes.OrderByDescending(e => e.Age);
                break;

            default:
                throw new InvalidEnumArgumentException("Unknown enum type");
            }

            return(employes);
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> List(string name = null, string surname = null, EmployeeSortState sortOrder = EmployeeSortState.NameAsc, int page = 1)
        {
            IQueryable <Employee> employes = db.Employes;
            var employesTotalCount         = await employes.CountAsync();

            employes = employes.Filter(name, surname);

            employes = employes.Sort(sortOrder);

            employes = employes.GetPage(page, PageSize);

            var viewModel = new EmployesListVM
            {
                Employes = await employes.AsNoTracking().ToListAsync(),
                FilterVM = new EmployesFilterVM(name, surname),
                SortVM   = new EmployesSortVM(sortOrder),
                PageVM   = new PageVM(employesTotalCount, page, PageSize),
            };

            return(View(viewModel));
        }