예제 #1
0
 public ContatosController(IContatoRepositorio repositorio)
 {
     _repositorio = repositorio;
     _repositorio.Add(new Contato {
         Nome = "Arthur Dent", Telefone = "(85) 8765-4321"
     });
 }
        public HttpResponseMessage PostContato(Contato item)
        {
            item = repositorio.Add(item);
            var response = Request.CreateResponse <Contato>(HttpStatusCode.Created, item);

            string uri = Url.Link("DefaultApi", new { id = item.Id });

            response.Headers.Location = new Uri(uri);
            return(response);
        }
예제 #3
0
        public IActionResult Create([FromBody] Contato contato)
        {
            if (contato == null)
            {
                return(BadRequest());
            }

            _repositorio.Add(contato);

            return(CreatedAtRoute("GetContato", new { id = contato.Id }, contato));
        }
 public ContatoItem Add(ContatoItem contatoItem)
 {
     return(_contatoRepositorio.Add(contatoItem));
 }
예제 #5
0
        public Task Handle(RegistrarNovoContatoCommand request, CancellationToken cancellationToken)
        {
            if (!request.IsValid())
            {
                NotifyValidationErrors(request);
                return(Task.CompletedTask);
            }

            #region Contato
            var contato = new Contato(request.Nome);
            contatoRepositorio.Add(contato);
            #endregion

            #region Contato E-mail
            if (request._contatoEmailValidationResults.Any(x => x.IsValid))
            {
                List <ContatoEmail> contatoEmails = new List <ContatoEmail>();
                foreach (var email in request.Emails)
                {
                    var contatoEmail = new ContatoEmail(email, contato.IdContato);
                    contatoEmailRespositorio.Add(contatoEmail);
                    contatoEmails.Add(contatoEmail);
                }
                contato.ContatoEmails = contatoEmails;
            }
            #endregion

            #region Contato Telefone
            if (request._contatoTelefoneValidationResults.Any(x => x.IsValid))
            {
                List <ContatoTelefone> contatoTelefones = new List <ContatoTelefone>();
                foreach (var telefone in request.Telefones)
                {
                    var contatoTelefone = new ContatoTelefone(telefone, contato.IdContato);
                    contatoTelefoneRespositorio.Add(contatoTelefone);
                    contatoTelefones.Add(contatoTelefone);
                }
                contato.ContatoTelefones = contatoTelefones;
            }
            #endregion

            if (Commit())
            {
                _bus.RaiseEvent(new RegistradoContatoEvent(contato.IdContato, request.Nome, contato.DtCadastro, null));

                if (request._contatoEmailValidationResults.Any(x => x.IsValid))
                {
                    foreach (var contatoEmail in contato.ContatoEmails)
                    {
                        _bus.RaiseEvent(new RegistradoContatoEmailEvent(
                                            contatoEmail.IdContatoEmail,
                                            contatoEmail.IdContato,
                                            contatoEmail.Email,
                                            contatoEmail.DtCadastro,
                                            contato.DtCadastro));
                    }
                }


                if (request._contatoTelefoneValidationResults.Any(x => x.IsValid))
                {
                    foreach (var contatoTelefone in contato.ContatoTelefones)
                    {
                        _bus.RaiseEvent(new RegistradoContatoTelefoneEvent(
                                            contatoTelefone.IdContatoTelefone
                                            , contatoTelefone.IdContato
                                            , contatoTelefone.Telefone
                                            , contatoTelefone.DtCadastro
                                            , contatoTelefone.DtExcluido));
                    }
                }
            }

            return(Task.CompletedTask);
        }