Exemplo n.º 1
0
        public override async Task <AutorResponse> GetById(AutorFilter request, ServerCallContext context)
        {
            var autorResponse = new AutorResponse();

            var result = await _servico.GetAutorAsync(Guid.Parse(request.AutorId));

            if (result.Status is ResultStatus.NotFound)
            {
                autorResponse.Code = (int)context.Status.StatusCode;
                autorResponse.Errors.AddRange(result.Errors);
                autorResponse.Message = $"Nenhum autor com o id '{request.AutorId}' foi encontrado";

                return(autorResponse);
            }

            autorResponse.Code = (int)result.Status;
            autorResponse.Errors.AddRange(result.Errors);
            autorResponse.Message = "Busca realizada com sucesso";
            autorResponse.Data    = new AutorModel
            {
                Id        = result.Value.Id.ToString(),
                Nome      = result.Value.Nome,
                Sobrenome = result.Value.Sobrenome,
                Email     = result.Value.Email,
                Bio       = result.Value.Bio,
                Avatar    = result.Value.Avatar
            };

            return(autorResponse);
        }
Exemplo n.º 2
0
        public override async Task <AutorResponse> Delete(AutorFilter request, ServerCallContext context)
        {
            var autorResponse = new AutorResponse();

            var result = await _servico.DeleteAutorAsync(Guid.Parse(request.AutorId));

            if (result.Status is ResultStatus.NotFound)
            {
                autorResponse.Code = (int)context.Status.StatusCode;
                autorResponse.Errors.AddRange(result.Errors);
                autorResponse.Message = $"Nenhum autor com o id '{request.AutorId}' foi encontrado";

                return(autorResponse);
            }

            autorResponse.Code = (int)result.Status;
            autorResponse.Errors.AddRange(result.Errors);
            autorResponse.Message = "Autor deletado com sucesso";

            return(autorResponse);
        }
Exemplo n.º 3
0
        public override async Task GetLivros(AutorFilter request, IServerStreamWriter <AutorLivrosResponse> responseStream, ServerCallContext context)
        {
            var livrosResponse = new AutorLivrosResponse();

            var result = await _servico.GetLivrosAutorAsync(Guid.Parse(request.AutorId));

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

                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 AutorLivroModel
            {
                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,
                AutorId        = x.AutorId.ToString(),
                EditoraId      = x.EditoraId.ToString()
            }));

            await responseStream.WriteAsync(livrosResponse);
        }