Esempio n. 1
0
        public async Task <IActionResult> Create([Bind("EmpresaId,Descricao,DataCadastro,Ativo,UltimaAtualizacao,Deletado,DeletadoData," +
                                                       "PessoaCliente,PessoaFornecedor,PessoaFisica,PessoaJuridica,PessoaUsuario,UsuarioPermissaoAcesso")] Pessoa pessoa)
        {
            if (ModelState.IsValid)
            {
                if (_pessoaService.ValidarPessoaUsuario(pessoa))
                {
                    ViewData["Message"] = "Nome de usuário em duplicidade!";
                    return(View(pessoa));
                }

                //tratar caracteres
                pessoa.PessoaFisica.CPF    = RemoverCaracteres.StringSemFormatacao(pessoa.PessoaFisica.CPF);
                pessoa.PessoaJuridica.CNPJ = RemoverCaracteres.StringSemFormatacao(pessoa.PessoaJuridica.CNPJ);
                pessoa.PessoaUsuario.PessoaUsuarioSenha.Senha = CodificarString.RetornarMD5(pessoa.PessoaUsuario.PessoaUsuarioSenha.Senha);

                if (pessoa.PessoaUsuario.User == true)
                {
                    pessoa.UsuarioPermissaoAcesso.EmpresaId = Program.EmpresaId;
                }

                _context.Add(pessoa);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(pessoa));
        }
Esempio n. 2
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,Ativo,DataCadastro,UltimaAtualizacao,Deletado,DeletadoData,Descricao,EmpresaId," +
                                                             "PessoaCliente," +
                                                             "PessoaFornecedor," +
                                                             "PessoaFisica," +
                                                             "PessoaJuridica," +
                                                             "PessoaUsuario," +
                                                             "UsuarioPermissaoAcesso")] Pessoa pessoa)
        {
            if (id != pessoa.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    //tratar caracteres
                    pessoa.PessoaFisica.CPF    = RemoverCaracteres.StringSemFormatacao(pessoa.PessoaFisica.CPF);
                    pessoa.PessoaJuridica.CNPJ = RemoverCaracteres.StringSemFormatacao(pessoa.PessoaJuridica.CNPJ);
                    pessoa.PessoaUsuario.PessoaUsuarioSenha.Senha = CodificarString.RetornarMD5(pessoa.PessoaUsuario.PessoaUsuarioSenha.Senha);

                    _context.Update(pessoa);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PessoaExists(pessoa.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(pessoa));
        }
Esempio n. 3
0
        public bool ValidarAcesso(Login login)
        {
            //Remover caracteres do CPForCNPJ
            string CNPJ = RemoverCaracteres.StringSemFormatacao(login.CNPJ);

            //testar se a empresa existe no banco administrativo caso verdadeiro seleciona o banco de dados para aplicação
            IQueryable <Empresa> empresaAdm = _context.Empresa
                                              .Where(e => e.CNPJ == CNPJ)
                                              .Where(e => e.Ativo == true);

            string database = "";

            foreach (Empresa p in empresaAdm)
            {
                database = p.Database;
            }

            if (!string.IsNullOrEmpty(database))
            {
                //altera o direcionamento da base de dados do contexto
                Program.BancoDeDadosAplicacao = database;

                //verifica se a empresa existe na base aplicação e resgata as informações
                IQueryable <Empresa> empresaAplicacao = _contextAplicacao.Empresa
                                                        .Where(e => e.CNPJ == CNPJ)
                                                        .Where(e => e.Database == database)
                                                        .Where(x => x.Ativo == true);

                foreach (Empresa item in empresaAplicacao)
                {
                    Program.EmpresaId = item.Id;
                }

                //Codifica a senha para ficar igual ao banco de dados
                login.Senha = CodificarString.RetornarMD5(login.Senha);

                //verifica o acesso do usuario
                IQueryable <Pessoa> acesso = _contextAplicacao.Pessoa
                                             .Where(p => p.PessoaUsuario.Usuario == login.Usuario)
                                             .Where(p => p.PessoaUsuario.PessoaUsuarioSenha.Senha == login.Senha && p.PessoaUsuario.PessoaUsuarioSenha.Ativo == true)
                                             .Where(p => p.Deletado == false)
                                             .Where(p => p.EmpresaId == Program.EmpresaId);
                if (acesso.GetEnumerator().MoveNext() == true)
                {
                    foreach (var item in acesso)
                    {
                        //implementar as permissões do usuario
                    }

                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }