public async Task <IActionResult> PostAsync([FromBody] CadastroDeClienteViewModel viewModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _servicoDeCadastroDeCliente.RegistrarNovoClienteAsync(viewModel).ConfigureAwait(false); if (result.IsFailure) { return(BadRequest(result)); } var cliente = result.Value; return(CreatedAtAction("GetByIdAsync", new { id = cliente.Id }, cliente)); }
public async Task <IActionResult> PutAsync(Guid id, [FromBody] CadastroDeClienteViewModel viewModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var result = await _servicoDeCadastroDeCliente.AlterarDadosDoCliente(id, viewModel).ConfigureAwait(false); if (result == null) { return(NotFound()); } if (result.IsFailure) { return(BadRequest(result)); } return(NoContent()); }
public async Task <Result <ClienteDTO> > RegistrarNovoClienteAsync(CadastroDeClienteViewModel viewModel) { var result = Cliente.RegistrarNovoCliente(viewModel.Nome, viewModel.DataDeNascimento, viewModel.Salario); if (result.IsFailure) { return(result.ToResult <ClienteDTO>()); } var cliente = result.Value; await _clienteRepository.AdicionarAsync(cliente).ConfigureAwait(false); await _unitOfWork.SaveChangesAsync().ConfigureAwait(false); return(result.ToResult(new ClienteDTO { Id = cliente.Id, Nome = cliente.Nome, DataDeNascimento = cliente.DataDeNascimento, Salario = cliente.Salario })); }
public async Task <Result <ClienteDTO> > AlterarDadosDoCliente(Guid idDoCliente, CadastroDeClienteViewModel viewModel) { var cliente = await _clienteRepository.ObterPeloIdAsync(idDoCliente).ConfigureAwait(false); if (cliente == null) { return(null); } var result = cliente.AlterarDados(viewModel.Nome, viewModel.DataDeNascimento, viewModel.Salario); if (result.IsFailure) { return(result.ToResult <ClienteDTO>()); } await _unitOfWork.SaveChangesAsync().ConfigureAwait(false); return(result.ToResult(new ClienteDTO { Id = cliente.Id, Nome = cliente.Nome, DataDeNascimento = cliente.DataDeNascimento, Salario = cliente.Salario })); }