예제 #1
0
        public async Task <ValidationResult> Handle(AdicionarUsuarioCommand message, CancellationToken cancellationToken)
        {
            if (!message.IsValid())
            {
                return(message.ValidationResult);
            }

            Usuario usuario = new Usuario(message.NomeUsuario, message.EmailUsuario, message.SenhaUsuario);

            _repository.AdicionarUsuario(usuario);

            return(await SaveAndPublish(new UsuarioAdicionadoEvent(usuario.Id, usuario.Nome, usuario.Email, usuario.Senha)));
        }
        public string AdicionarUsuario(Usuario usuario)
        {
            if (!usuario.IsValid())
            {
                return("Dados inválidos");
            }

            _usuarioRepository.AdicionarUsuario(usuario);

            _emailServices.Enviar("*****@*****.**", usuario.Email, "Bem Vindo", "Parabéns está Cadastrado");

            return("Usuário cadastrado com sucesso");
        }
        /// <summary>
        /// Método para validar os processos para criar um usuário
        /// </summary>
        /// <param name="_command">Comando de criação do usuário</param>
        /// <returns>Dados salvos ou erros gerados</returns>
        public ICommandResult Handle(CriarUsuarioCommand _command)
        {
            //1º - Validando se o command recebido é válido
            _command.Validar();

            //Caso seja inválido, recebemos quando são os valores incorretos identificados por ele
            if (_command.Invalid)
            {
                return(new GenericCommandResult(false, "Informe os dados corretamente", _command.Notifications));
            }

            //2º - Verificando se o email de usuário já não pertence a nossa base de dados
            var _emailUsuarioExistente = _repository.BuscarUsuarioPorEmail(_command.Email);

            //Caso o email exista, informe ao usuário que o email informado já está em uso
            if (_emailUsuarioExistente != null)
            {
                return(new GenericCommandResult(false, "E-mail já cadastrado, informe um novo e-mail", _command.Notifications));
            }

            //3º - Criptografando a senha informada pelo usuário
            _command.Senha = HashDeSenha.EncriptografarSenha(_command.Senha);

            //4º - Criando uma nova instância de usuário com os dados capturados
            var _usuario = new Usuario(_command.Nome, _command.Email, _command.Senha, _command.TipoPerfil);

            //Verificando se o usuário informou um número de telefone
            if (!string.IsNullOrEmpty(_command.Telefone))
            {
                //Caso sim, atrelar o telefone ao usuário
                _usuario.AdicionarTelefone(_command.Telefone);
            }

            //5º - Validando os dados do usuário
            if (_usuario.Invalid)
            {
                return(new GenericCommandResult(false, "Dados do usuário inválidos", _usuario.Notifications));
            }

            //6º - Enviar um email de notificação para o usuário
            _ = SendEmailGrid.EnviarEmail(_usuario.Email, _usuario.Nome, "Confirmação de cadastro", "Seu cadastro foi realizado", "Olá, é um grande prazer receber você na nossa plataforma CodeTur, esperamos que você possa aproveitar nossos serviços, muito obrigado pelo interesse!", null);

            //7º - Salvando no banco de dados
            _repository.AdicionarUsuario(_usuario);

            return(new GenericCommandResult(true, "Usuário criado com sucesso", _usuario));
        }
예제 #4
0
 public Usuario AdicionarUsuario(Usuario UsuarioA)
 {
     return(_UsuarioRepository.AdicionarUsuario(UsuarioA));
 }