public Task <bool> Handle(UsuarioNovoCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var usuario = new Usuario(Guid.NewGuid(), message.Nome, message.Salario, message.Email);

            if (_usuarioRepository.BuscarEmail(usuario.Email) != null)
            {
                Bus.EnviarEvent(new DomainNotification(message.MessageType, "E-mail já existe"));
                return(Task.FromResult(false));
            }

            _usuarioRepository.Add(usuario);

            if (Commit())
            {
                var msg = new UsuarioNovoEvent(usuario.Id, usuario.Nome, usuario.Email);

                //Log
                Bus.EnviarEvent(msg);

                //Banco de Leitura
                //_usuarioRepository.InserirUsuarioRead(usuario);

                //Enviar Para área de segurança
                _eventBus.Publish(msg, exchange: "Empresa.RHEvent", routingKey: "empresa.rhevent.novousuario");
            }

            return(Task.FromResult(true));
        }
Beispiel #2
0
 protected void NotifyValidationErrors(Command message)
 {
     foreach (var error in message.ValidationResult.Errors)
     {
         _bus.EnviarEvent(new DomainNotification(message.MessageType, error.ErrorMessage));
     }
 }
Beispiel #3
0
        public Task <bool> Handle(UsuarioNovoCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                NotifyValidationErrors(message);
                return(Task.FromResult(false));
            }

            var usuario = new Usuario(message.Id, message.Nome, message.Email);

            if (_usuarioRepository.BuscarEmail(usuario.Email) != null)
            {
                Bus.EnviarEvent(new DomainNotification(message.MessageType, "E-mail já existe"));
                return(Task.FromResult(false));
            }

            _usuarioRepository.Add(usuario);

            Commit();

            return(Task.FromResult(true));
        }
 protected void NotifyError(string code, string message)
 {
     _mediator.EnviarEvent(new DomainNotification(code, message));
 }