public override async Task ListAll(AutorSearch request, IServerStreamWriter <AutoresResponse> responseStream, ServerCallContext context) { var autoresResponse = new AutoresResponse(); var searchQuery = new AutorSearchQuery { Nome = request.Nome, Email = request.Email }; var result = await _servico.GetAutoresAsync(filter : searchQuery); autoresResponse.Code = (int)context.Status.StatusCode; autoresResponse.Errors.AddRange(result.Errors); autoresResponse.Message = result.Errors.Any() ? "Erro ao retornar lista de autores" : "Autores retornados com sucesso"; autoresResponse.Data.AddRange( result.Value.Select(x => new AutorModel { Id = x.Id.ToString(), Nome = x.Nome, Sobrenome = x.Sobrenome, Email = x.Email, Bio = x.Bio, Avatar = x.Avatar })); await responseStream.WriteAsync(autoresResponse); }
public async Task <Result <IReadOnlyList <AutorModel> > > GetAutoresAsync(AutorSearchQuery filter = null) { var spec = new AutorSearchSpecification(filter.Nome, filter.Email); var autores = (await _repositorio.ListAsync(spec)).ToList(); return(Result <IReadOnlyList <AutorModel> > .Success( _mapper.Map <IReadOnlyList <AutorModel> >(autores))); }