예제 #1
0
        public override async Task <EditoraResponse> GetById(EditoraFilter request, ServerCallContext context)
        {
            var editoraResponse = new EditoraResponse();

            var result = await _servico.GetEditoraAsync(Guid.Parse(request.EditoraId));

            if (result.Status is ResultStatus.NotFound)
            {
                editoraResponse.Code = (int)context.Status.StatusCode;
                editoraResponse.Errors.AddRange(result.Errors);
                editoraResponse.Message = $"Nenhum editora com o id '{request.EditoraId}' foi encontrada";

                return(editoraResponse);
            }

            editoraResponse.Code = (int)result.Status;
            editoraResponse.Errors.AddRange(result.Errors);
            editoraResponse.Message = "Busca realizada com sucesso";
            editoraResponse.Data    = new EditoraModel
            {
                Id       = result.Value.Id.ToString(),
                Nome     = result.Value.Nome,
                SiteURL  = result.Value.SiteURL,
                Endereco = result.Value.Endereco
            };

            return(editoraResponse);
        }
예제 #2
0
        public override async Task <EditoraResponse> Delete(EditoraFilter request, ServerCallContext context)
        {
            var editoraResponse = new EditoraResponse();

            var result = await _servico.DeleteEditoraAsync(Guid.Parse(request.EditoraId));

            if (result.Status is ResultStatus.NotFound)
            {
                editoraResponse.Code = (int)context.Status.StatusCode;
                editoraResponse.Errors.AddRange(result.Errors);
                editoraResponse.Message = $"Nenhum editora com o id '{request.EditoraId}' foi encontrada";

                return(editoraResponse);
            }

            editoraResponse.Code = (int)result.Status;
            editoraResponse.Errors.AddRange(result.Errors);
            editoraResponse.Message = "Editora deletada com sucesso";

            return(editoraResponse);
        }
예제 #3
0
        public override async Task GetLivros(EditoraFilter request, IServerStreamWriter <EditoraLivrosResponse> responseStream, ServerCallContext context)
        {
            var livrosResponse = new EditoraLivrosResponse();

            var result = await _servico.GetLivrosEditoraAsync(Guid.Parse(request.EditoraId));

            if (result.Status is ResultStatus.NotFound)
            {
                livrosResponse.Code = (int)context.Status.StatusCode;
                livrosResponse.Errors.AddRange(result.Errors);
                livrosResponse.Message = $"Nenhum editora com o id '{request.EditoraId}' foi encontrada";

                await responseStream.WriteAsync(livrosResponse);
            }

            livrosResponse.Code = (int)result.Status;
            livrosResponse.Errors.AddRange(result.Errors);
            livrosResponse.Message = "Busca realizada com sucesso";
            livrosResponse.Data.AddRange(
                result.Value.Select(x => new EditoraLivroModel
            {
                Id             = x.Id.ToString(),
                Titulo         = x.Titulo,
                Descricao      = x.Descricao,
                Valor          = Convert.ToDouble(x.Valor),
                Isbn10         = x.ISBN_10,
                Edicao         = x.Edicao,
                Idioma         = x.Idioma,
                DataPublicacao = x.DataPublicacao.ToShortDateString(),
                NumeroPaginas  = x.NumeroPaginas,
                EditoraId      = x.EditoraId.ToString(),
                AutorId        = x.AutorId.ToString()
            }));

            await responseStream.WriteAsync(livrosResponse);
        }