示例#1
0
        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
                }));
            }
        }
示例#3
0
 public int CriarNovo(ContatoRequest request)
 {
     return(_contatoApplication.CriarNovo(request.Nome, request.Email, request.TipoContato, request.Observacao));
 }