public async Task <PagedResultDto <Department> > GetPagedDepartmentsList(GetDepartmentInput input) { var query = _departmentRepository.GetAll(); if (!string.IsNullOrEmpty(input.FilterText)) { query = query.Where(s => s.Name.Contains(input.FilterText)); } var count = query.Count(); query = query.OrderBy(input.Sorting).Skip((input.CurrentPage - 1) * input.MaxResultCount).Take(input.MaxResultCount); List <Department> models = await query.Include(i => i.Administrator).AsNoTracking().ToListAsync(); var dtos = new PagedResultDto <Department> { TotalCount = count, CurrentPage = input.CurrentPage, MaxResultCount = input.MaxResultCount, Data = models, FilterText = input.FilterText, Sorting = input.Sorting }; return(dtos); }
public async Task <PagedResultDto <DepartmentDto> > GetDepartmentsAsync(GetDepartmentInput input) { var query = _departmentRepository.GetAll() .WhereIf(!input.Name.IsNullOrWhiteSpace(), m => m.Name.Contains(input.Name)); var totalCount = await query.CountAsync(); var items = await query.OrderBy(input.Sorting).PageBy(input).ToListAsync(); return(new PagedResultDto <DepartmentDto>( totalCount, items.Select(item => ObjectMapper.Map <DepartmentDto>(item)).ToList())); }
public async Task <IActionResult> Index(GetDepartmentInput input) { var models = await _departmentsService.GetPagedDepartmentsList(input); return(View(models)); }