public async Task <ActionResult <IEnumerable <TodoReadDTO> > > GetFilteredTodos([FromQuery] TodoFilterDTO filter) { var request = new GetFilteredTodosQuery(User.Identity?.Name, filter ?? new TodoFilterDTO()); var todos = await _mediator.Send(request); return(todos.Any() ? Ok(todos) : NoContent()); }
public async Task <IActionResult> GetFiltered([FromBody] GetFilteredTodosQuery query) { if (query == null) { } return(Ok(await Mediator.Send(query))); }
public async Task <IEnumerable <TodoReadDTO> > Handle(GetFilteredTodosQuery request, CancellationToken cancellationToken) { var query = GetQuery(request.UserLogin, request.Filter); var todos = await query.ToListAsync(cancellationToken); if (!todos.Any()) { return(Enumerable.Empty <TodoReadDTO>()); } return(FilterTodos(todos, request.Filter) .OrderBy(todo => todo.Order) .Select(todo => todo.ToReadDTO())); }