public async Task <IActionResult> Get([FromQuery] TodoParams todoParams) { var todos = await _repo.GetTodos(todoParams); var todoDtos = _mapper.Map <IEnumerable <TodoListDto> >(todos); Response.AddPagination(todos.CurrentPage, todos.PageSize, todos.TotalCount, todos.TotalPage); return(Ok(todoDtos.OrderBy(t => t.Title))); }
public async Task <PageList <TodoItem> > GetTodos(TodoParams todoParams) { var todos = _ctx.Todos.AsQueryable(); if (todoParams.IsFinished.HasValue) { todos = todos.Where(t => todoParams.IsFinished.Value ? t.IsFinished : !t.IsFinished); } if (!string.IsNullOrEmpty(todoParams.Title)) { todos = todos.Where(t => t.Title.Contains(todoParams.Title)); } return(await PageList <TodoItem> .CreateAsync(todos, todoParams.PageNumber, todoParams.PageSize)); }