public Task Handle(RegisterNewAmigoCommand message, CancellationToken cancellation)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Unit.Task);
            }

            var Amigo = new Amigo(Guid.NewGuid(), message.Nome, message.Endereco);

            if (_amigoRepository.GetById(Amigo.Id) != null)
            {
                Bus.RaiseEvent(new DomainNotification(message.MessageType, "Erro ao tentar inserir a entidade"));
                return(Unit.Task);
            }

            _amigoRepository.Add(Amigo);

            if (Commit())
            {
                Bus.RaiseEvent(new AmigoRegisteredEvent(Amigo.Id, Amigo.Nome, Amigo.Endereco));
            }

            return(Unit.Task);
        }
        public void Add(AmigoEnderecoViewModel amigoViewModel)
        {
            var amigo    = _mapper.Map <AmigoEnderecoViewModel, Amigo>(amigoViewModel);
            var endereco = _mapper.Map <AmigoEnderecoViewModel, Endereco>(amigoViewModel);

            amigo.Endereco = endereco;

            _amigoRepository.Add(amigo);
            _amigoRepository.SaveChanges();
        }
        // <summary>
        /// Cadastrar Amigo
        /// </summary>
        /// <param name="AmigoVM">AmigoVM</param>
        /// <returns></returns>
        public void Cadastrar(AmigoVM model)
        {
            try
            {
                Amigo amigo = new Amigo()
                {
                    Nome = model.Nome
                };

                _amigoRepository.Add(amigo);
            }
            catch (Exception ex)
            {
                GlobalException.ReturnException(ex);
            }
        }