예제 #1
0
        public async Task <IActionResult> Put(Guid id, Cliente cliente, [FromServices] ClienteValidator validator)
        {
            try
            {
                if (id != cliente.Id)
                {
                    return(BadRequest());
                }

                var result = await validator.ValidateAsync(cliente);

                if (!result.IsValid)
                {
                    return(UnprocessableEntity(new Retorno <Cliente>(result.Errors)));
                }

                _repository.Update(cliente);
                await _uow.Commit();

                cliente = await _repository.GetById(id);

                return(Ok(new Retorno <Cliente> {
                    Mensagem = "Cadastro atualizado com sucesso", Dados = cliente
                }));
            }
            catch (Exception ex)
            {
                await _uow.Rollback();

                return(BadRequest(new Retorno <Cliente>(ex.InnerException?.Message)));
            }
        }
예제 #2
0
        public async Task <IActionResult> Register(
            Cliente usuario,
            [FromServices] ClienteValidator validator,
            [FromServices] IFluentEmail email
            )
        {
            try
            {
                var result = await validator.ValidateAsync(usuario);

                if (!result.IsValid)
                {
                    return(UnprocessableEntity(new Retorno <Usuario>(result.Errors)));
                }

                await _repository.Add(usuario);

                await _uow.Commit();

                _ = email
                    .To(usuario.Email, usuario.Nome)
                    .Subject("Cadastro realizado com sucesso")
                    .Body("Corpo da mensagem de teste")
                    .SendAsync();

                return(Ok(new Retorno <Cliente> {
                    Mensagem = "Cadastro realizado com sucesso", Dados = usuario
                }));
            }
            catch (Exception ex)
            {
                await _uow.Rollback();

                return(BadRequest(new Retorno <Usuario>(ex.InnerException?.Message)));
            }
        }