Пример #1
0
        public override async Task ListAll(EditoraSearch request, IServerStreamWriter <EditorasResponse> responseStream, ServerCallContext context)
        {
            var editorasResponse = new EditorasResponse();
            var searchQuery      = new EditoraSearchQuery
            {
                Nome = request.Nome
            };

            var result = await _servico.GetEditorasAsync(filter : searchQuery);

            editorasResponse.Code = (int)context.Status.StatusCode;
            editorasResponse.Errors.AddRange(result.Errors);
            editorasResponse.Message = result.Errors.Any() ?
                                       "Erro ao retornar lista de editoras" :
                                       "Editoras retornadas com sucesso";
            editorasResponse.Data.AddRange(
                result.Value.Select(x => new EditoraModel
            {
                Id       = x.Id.ToString(),
                Nome     = x.Nome,
                SiteURL  = x.SiteURL,
                Endereco = x.Endereco
            }));

            await responseStream.WriteAsync(editorasResponse);
        }
        public async Task <Result <IReadOnlyList <EditoraModel> > > GetEditorasAsync(EditoraSearchQuery filter = null)
        {
            var spec     = new EditoraSearchSpecification(filter.Nome);
            var editoras = (await _repositorio.ListAsync(spec)).ToList();

            return(Result <IReadOnlyList <EditoraModel> > .Success(
                       _mapper.Map <IReadOnlyList <EditoraModel> >(editoras)));
        }