Пример #1
0
        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)));
        }
Пример #2
0
        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));
        }