public async Task <Guid> CadastrarContato(ContatoRequest request, TelefoneComponent telefoneComponent, EnderecoComponent enderecoComponent, EmailComponent emailComponent) { request.Validate(); if (string.IsNullOrEmpty(request.Nome)) { throw new Exception("O nome do contato é obrigatório."); } if (request.AgendaId == Guid.Empty) { throw new Exception("ID da agenda não fornecido para realizar o cadastro."); } var contato = request.ConvertyToEntity(); await _contatoRepository.CadastrarContato(contato, request.AgendaId); if (contato.ContatoId == Guid.Empty) { throw new Exception("Erro ao cadastrar contato, verifique os dados e tente novamente"); } if (!string.IsNullOrWhiteSpace(contato.Email)) { await emailComponent.EnviarEmailContato(contato, contato.Email); } return(contato.ContatoId); }
public async Task <IActionResult> CadastrarContato([FromBody] ContatoRequest request) { try { var contatoId = await _contatoComponent.CadastrarContato(request, _telefoneComponent, _enderecoComponent, _emailComponent); return(Ok(new RequestResponse <string> { Mensagem = "Contato cadastrado com sucesso", Resposta = contatoId.ToString() })); } catch (Exception ex) { return(BadRequest(new RequestResponse { Mensagem = ex.Message })); } }
public int CriarNovo(ContatoRequest request) { return(_contatoApplication.CriarNovo(request.Nome, request.Email, request.TipoContato, request.Observacao)); }