Exemplo n.º 1
0
        internal void CriarUsuarioAutoCadastro(string email, string url)
        {
            if (!ValidateUtils.IsValidEmail(email))
            {
                throw new Exception("e-mail informado não é válido");
            }

            var indiceArroba = email.IndexOf("@");
            var dominio      = email.Substring(indiceArroba + 1);
            var usuario      = email.Substring(0, indiceArroba);
            var papel        = PapelDao.PapelUsuario.UsuarioNaoAutenticado;

            if (dominio.ToLower() == "aluno.ifsc.edu.br")
            {
                papel = PapelDao.PapelUsuario.Discente;
            }
            else if (dominio.ToLower() == "ifsc.edu.br")
            {
                papel = PapelDao.PapelUsuario.Servidor;
            }

            if (papel != PapelDao.PapelUsuario.UsuarioNaoAutenticado)
            {
                var senha       = GeraSenhaAleatoria();
                var novoUsuario = new Usuario
                {
                    Nome       = usuario,
                    Email      = email,
                    Ativo      = false,
                    PapelId    = (int)papel,
                    Senha      = senha,
                    SenhaReset = cripto.Encrypt(senha)
                };

                var uServer = new UsuarioServer();
                novoUsuario = uServer.Novo(novoUsuario);

                url += $"/Login/ConfirmacaoEmail?id={novoUsuario.Id}&s={senha}";

                var textEmail = ($@"Seja Bem-Vindo ao SCIR-IFSC <br><br> Foi criado o seu usuário e senha, para acessar deve entrar no link a baixo para ativar a sua conta<br> {url} <br><br> E a sua senha após entrar no link anterior provisória é: <br>{senha} <br><br>Após efetuar o login é aconselhavel trocar a sua senha no sistema imediatamente!");
                EnvioEmail.SendMailGeneric(novoUsuario, textEmail, "Conta de Usuário SCIR - IFSC");
            }
            else
            {
                throw new Exception("Deve informar o seu e-mail fornecido pela instituição de ensino!");
            }
        }
Exemplo n.º 2
0
        public async Task <string> ValidateEmail(string email)
        {
            try
            {
                return(await Task.Run(() =>
                {
                    Logger.LogInfo("Start email validation");

                    if (!ValidateUtils.IsValidEmail(email))
                    {
                        string message = "Not a valid email";
                        Logger.LogInfo(message);
                        return message;
                    }

                    int?id = QueryFirstOrDefault <int?>(@"
                    select id
                    from users
                    where email = @email
                ", new { email });
                    if (id.HasValue)
                    {
                        string message = "User with same email already created. Please try another or try to sign in.";
                        Logger.LogInfo(message);
                        return message;
                    }

                    Logger.LogInfo("Email successfuly validated.");
                    return null;
                }));
            }
            catch (Exception exception)
            {
                Logger.LogException(exception);
                throw exception;
            }
        }