public async Task <ActionResult <Usuario> > GetPorEmail(string email)
        {
            try
            {
                var validarUsuarioComEmail = await repositorio.GetEmailUsuario(email);

                if (validarUsuarioComEmail == null)
                {
                    return(NotFound("Email não encontrado!"));
                }

                string caracteres         = "techcycle123456789";
                string senhaGerada        = "";
                Random misturarCaracteres = new Random();
                for (var senha = 0; senha < 5; senha++)
                {
                    senhaGerada += caracteres.Substring(misturarCaracteres.Next(0, caracteres.Length - 1), 1);
                }

                string tituloEmail = ($"Sua nova senha solicitada: {senhaGerada}");
                string corpoEmail  = System.IO.File.ReadAllText(path: @"emails\parabens.html");
                _emailController.Email(validarUsuarioComEmail.Email, corpoEmail, tituloEmail);


                var hashSenha = new HashSenha(SHA256.Create());
                validarUsuarioComEmail.Senha = hashSenha.HasheandoSenha(senhaGerada);
                await repositorio.Put(validarUsuarioComEmail);

                return(validarUsuarioComEmail);
            }
            catch (Exception)
            {
                throw;
            }
        }
Exemple #2
0
        private Usuario autenticarUsuario(LoginUsuarioViewModel login)
        {
            var hashSenha     = new HashSenha(SHA256.Create());
            var senhaHasheada = hashSenha.HasheandoSenha(login.Senha);

            var usuario = context.Usuario
                          .FirstOrDefault(us => (us.LoginUsuario == login.LoginUsuario && us.Senha == senhaHasheada) ||
                                          (us.Email == login.Email && us.Senha == senhaHasheada));

            return(usuario);
        }
        public async Task <ActionResult <Usuario> > Post([FromForm] CadUsuarioViewModel usuario)
        {
            Usuario usosExistente = await repositorio.verificacaoDeUso(usuario.email, usuario.loginUsuario);

            if (usosExistente != null)
            {
                return(BadRequest("Desculpe, mas parece que este email ou o userName já está em uso"));
            }
            try
            {
                Usuario newUsuario = new Usuario();

                var hashSenha = new HashSenha(SHA256.Create());

                if (Request.Form.Files.Count > 0)
                {
                    var arquivo      = Request.Form.Files[0];
                    var caminhoPasta = @"Resources\Usuario\";

                    newUsuario.LoginUsuario = usuario.loginUsuario;
                    newUsuario.Senha        = hashSenha.HasheandoSenha(usuario.senha);
                    newUsuario.NomeCompleto = usuario.nomeCompleto;

                    string tituloEmail = "Aguardando aprovação!";
                    string corpoEmail  = System.IO.File.ReadAllText(path: @"emails\parabens.html");
                    _emailController.Email(usuario.email, corpoEmail, tituloEmail);
                    newUsuario.Email = usuario.email;

                    newUsuario.FotoUsuario     = _uploadController.Upload(arquivo, caminhoPasta);
                    newUsuario.Departamento    = usuario.departamento;
                    newUsuario.TipoDeUsuario   = "Funcionario";
                    newUsuario.StatusAprovacao = "Aguardo";
                }
                else
                {
                    var arquivo = string.Empty;

                    if (Request.Form.Files.Count == 0)
                    {
                        arquivo = "semfoto.jpg";
                    }

                    newUsuario.LoginUsuario = usuario.loginUsuario;
                    newUsuario.Senha        = hashSenha.HasheandoSenha(usuario.senha);
                    newUsuario.NomeCompleto = usuario.nomeCompleto;

                    string tituloEmail = "Aguardando aprovação!";
                    string corpoEmail  = System.IO.File.ReadAllText(path: @"emails\parabens.html");
                    _emailController.Email(usuario.email, corpoEmail, tituloEmail);
                    newUsuario.Email = usuario.email;

                    newUsuario.FotoUsuario     = arquivo;
                    newUsuario.Departamento    = usuario.departamento;
                    newUsuario.TipoDeUsuario   = "Funcionario";
                    newUsuario.StatusAprovacao = "Aguardo";
                }
                await repositorio.Post(newUsuario);

                return(newUsuario);
            }catch (Exception)
            {
                throw;
            }
        }
        private Usuario verificacaoAlteracao(Usuario usuario, AltUsuarioViewModel alteracao)
        {
            if (alteracao.nomeCompleto == null && alteracao == null)
            {
                usuario.NomeCompleto = usuario.NomeCompleto;
            }
            else if (alteracao.nomeCompleto != null && usuario.NomeCompleto != alteracao.nomeCompleto)
            {
                usuario.NomeCompleto = alteracao.nomeCompleto;
            }


            if (alteracao.loginUsuario == null && alteracao == null)
            {
                usuario.LoginUsuario = usuario.LoginUsuario;
            }
            else if (alteracao.loginUsuario != null && usuario.LoginUsuario != alteracao.loginUsuario)
            {
                usuario.LoginUsuario = alteracao.loginUsuario;
            }


            if (alteracao.email == null && alteracao == null)
            {
                usuario.Email = usuario.Email;
            }
            else if (alteracao.email != null && usuario.Email != alteracao.email)
            {
                string tituloEmail = "Aguardando aprovação!";
                string corpoEmail  = System.IO.File.ReadAllText(path: @"emails\parabens.html");
                _emailController.Email(alteracao.email, corpoEmail, tituloEmail);
                usuario.Email = alteracao.email;
            }

            var hashSenha = new HashSenha(SHA256.Create());

            if (alteracao.senha == null && alteracao == null)
            {
                usuario.Senha = usuario.Senha;
            }
            else if (alteracao.senha != null && usuario.Senha != alteracao.senha)
            {
                usuario.Senha = hashSenha.HasheandoSenha(alteracao.senha);

                string tituloEmail = ($"Sua senha foi alterada para {alteracao.senha}!");
                string corpoEmail  = System.IO.File.ReadAllText(path: @"emails\parabens.html");
                _emailController.Email(usuario.Email, corpoEmail, tituloEmail);
            }

            if (alteracao.departamento == null && alteracao == null)
            {
                usuario.Departamento = usuario.Departamento;
            }
            else if (alteracao.departamento != null && usuario.Departamento != alteracao.departamento)
            {
                usuario.Departamento = alteracao.departamento;
            }


            if (alteracao.tipoDeUsuario == null && alteracao == null)
            {
                usuario.TipoDeUsuario = usuario.TipoDeUsuario;
            }
            else if (alteracao.tipoDeUsuario != null && usuario.TipoDeUsuario != alteracao.tipoDeUsuario)
            {
                usuario.TipoDeUsuario = alteracao.tipoDeUsuario;
            }


            if (alteracao.statusAprovacao == null && alteracao == null)
            {
                usuario.StatusAprovacao = usuario.StatusAprovacao;
            }
            else if (alteracao.statusAprovacao != null && usuario.StatusAprovacao != alteracao.statusAprovacao)
            {
                usuario.StatusAprovacao = alteracao.statusAprovacao;

                if (usuario.StatusAprovacao == "Aprovado")
                {
                    string tituloEmail = "Você foi aprovado!";
                    string corpoEmail  = System.IO.File.ReadAllText(path: @"emails\parabens.html");
                    _emailController.Email(usuario.Email, corpoEmail, tituloEmail);
                }
            }

            if (Request.Form.Files.Count > 0)
            {
                var arquivo      = Request.Form.Files[0];
                var caminhoPasta = @"Resources\Usuario\";
                usuario.FotoUsuario = _uploadController.Upload(arquivo, caminhoPasta);
            }

            return(usuario);
        }