Exemple #1
0
 public static Autor ToAutor(AutorResponse request)
 {
     return(new Autor
     {
         IdAutor = request.Id,
         NumeAutor = request.Nume,
     });
 }
Exemple #2
0
        public override async Task <AutorResponse> Update(AutorUpdateRequest request, ServerCallContext context)
        {
            var autorResponse = new AutorResponse();
            var autorModel    = new Application.Models.AutorModel
            {
                Nome      = request.Nome,
                Sobrenome = request.Sobrenome,
                Email     = request.Email,
                Bio       = request.Bio,
                Avatar    = request.Avatar
            };

            var result = await _servico.UpdateAutorAsync(Guid.Parse(request.AutorId), autorModel);

            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);
            }

            if (result.Status is ResultStatus.Invalid)
            {
                autorResponse.Code = (int)context.Status.StatusCode;
                autorResponse.Errors.AddRange(result.Errors);
                autorResponse.Message = $"Autor possui erros de validação";
                autorResponse.Validations.AddRange(result.ValidationErrors
                                                   .Select(x => new AutorValidationErrorsModel
                {
                    Error    = x.ErrorMessage,
                    Property = x.Identifier,
                    Nivel    = x.Severity.ToString()
                }));

                return(autorResponse);
            }

            autorResponse.Code = (int)result.Status;
            autorResponse.Errors.AddRange(result.Errors);
            autorResponse.Message = "Autor atualizado 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);
        }
Exemple #3
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);
        }