Пример #1
0
        /// <summary>
        /// Valida se existe alguma inconsistência nos campos preenchidos pelo usuário
        /// </summary>
        /// <param name="idUsuario">Identificador do usuário a ser validado</param>
        /// <param name="idApi">Identificador, na API, do usuário a ser validado</param>
        /// <param name="nome">Nome do usuário a ser validado</param>
        /// <param name="email">E-mail do usuário a ser validado</param>
        /// <returns>Indica se está tudo válido ou não</returns>
        private bool ValidaPreenchimento(int?idUsuario, int?idApi, string nome, string email)
        {
            List <UsuarioApi> usuariosApi = (List <UsuarioApi>)GerenciamentoUsuario.CarregaUsuariosApi();
            Usuario           lUsuario    = GerenciamentoUsuario.CarregaUsuario(nome);

            if (string.IsNullOrEmpty(nome))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_NOME_VAZIO;
                return(false);
            }

            if (!Util.EEmailValido(email))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_EMAIL_INVALIDO;
                return(false);
            }

            if ((lUsuario != null && lUsuario.Id != idUsuario) || usuariosApi.Any(u => u.Nome == nome && u.Id != idApi))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_NOME_DUPLICADO;
                return(false);
            }

            lUsuario = GerenciamentoUsuario.CarregaUsuarioPorEmail(email);

            if ((lUsuario != null && lUsuario.Id != idUsuario) || usuariosApi.Any(u => u.Email == email && u.Id != idApi))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_EMAIL_DUPLICADO;
                return(false);
            }

            return(true);
        }
Пример #2
0
        /// <summary>
        /// Envia uma nova senha para o usuário que esqueceu sua senha.
        /// </summary>
        /// <param name="sender">Objeto que disparou esse evento</param>
        /// <param name="e">Contém os argumentos fornecidos nesse evento</param>
        protected void BtnEnviarSenha_Click(object sender, EventArgs e)
        {
            Usuario usuario   = GerenciamentoUsuario.CarregaUsuarioPorEmail(this.TxtEmail.Text);
            string  novaSenha = Autenticacao.GeraSenhaRandomica();

            this.DivMensagem.Visible             = true;
            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO;

            if (usuario == null)
            {
                this.LblMensagem.Text = string.Format(MENSAGEM_ERRO_USUARIO_INEXISTENTE, this.TxtEmail.Text);
                return;
            }

            try
            {
                usuario.Senha = Autenticacao.ObtemSHA1Hash(novaSenha);

                GerenciamentoUsuario.AtualizaUsuario(usuario);

                GerenciamentoEmail.EnviaEmailRecuperacaoSenha(usuario.Email, usuario.Nome, usuario.Email, novaSenha);
            }
            catch (Exception ex)
            {
                Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString());
                this.LblMensagem.Text = string.Format(MENSAGEM_ERRO_ENVIO_EMAIL, usuario.Email);
                return;
            }

            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO;
            this.LblMensagem.Text = string.Format(MENSAGEM_SUCESSO_RECUPERACAO_SENHA, usuario.Email);
        }
Пример #3
0
        /// <summary>
        /// Exclui o usuário da API e depois o exclui do banco de dados local
        /// </summary>
        /// <param name="idUsuario">Identificador do usuário</param>
        private void ExcluiUsuario(int idUsuario)
        {
            Usuario usuario = GerenciamentoUsuario.CarregaUsuario(idUsuario);

            this.DivMensagem.Visible             = true;
            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO;

            if (!GerenciamentoUsuario.ExcluiUsuarioApi(usuario.IdApi.Value))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_EXCLUSAO_API;
                return;
            }

            if (!GerenciamentoUsuario.ExcluiUsuario(usuario))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_EXCLUSAO;

                return;
            }

            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO;
            this.LblMensagem.Text = MENSAGEM_SUCESSO_EXCLUSAO;

            this.ReiniciaControles();
        }
Пример #4
0
        /// <summary>
        /// Define os controles de edição com os valores do usuário
        /// </summary>
        /// <param name="idUsuario">Identificador do usuário</param>
        private void EditaUsuario(int idUsuario)
        {
            Usuario usuario = GerenciamentoUsuario.CarregaUsuario(idUsuario);

            this.TxtNome.Text           = usuario.Nome;
            this.TxtEmail.Text          = usuario.Email;
            this.DdPerfil.SelectedValue = ((byte)usuario.Perfil).ToString();

            this.BtnSalvar.CommandArgument = usuario.Id.ToString();
        }
Пример #5
0
        /// <summary>
        /// Define os valores de cada controle de propriedades de arquivo para exibição
        /// </summary>
        /// <param name="propriedade">Propriedades do arquivo</param>
        private void DefineControlePropriedades(PropriedadeObjeto propriedade)
        {
            List <UsuarioApi>  usuarios = (List <UsuarioApi>)GerenciamentoUsuario.CarregaUsuariosApi();
            UsuarioApi         usuario  = usuarios.Exists(u => u.Id == propriedade.IdUsuarioUpload) ? usuarios.First(u => u.Id == propriedade.IdUsuarioUpload) : null;
            List <AcaoArquivo> arquivos = new List <AcaoArquivo>();

            GerenciamentoArquivo.ExtraiDocumentosObjeto(propriedade, ref arquivos);

            this.TxtPropriedadeNomeArquivo.Text        = propriedade.NomeOriginal;
            this.TxtPropriedadeCompetenciaInicial.Text = propriedade.DetalheSped.CompetenciaInicial.HasValue ? propriedade.DetalheSped.CompetenciaInicial.Value.ToString("dd/MM/yyyy") : string.Empty;
            this.TxtPropriedadeCompetenciaFinal.Text   = propriedade.DetalheSped.CompetenciaFinal.HasValue ? propriedade.DetalheSped.CompetenciaFinal.Value.ToString("dd/MM/yyyy") : string.Empty;
            this.TxtPropriedadeTipoEscrituracao.Text   = Dominio.ValorTextoDe(propriedade.DetalheSped.TipoEscrituracao);
            this.TxtPropriedadeFinalidade.Text         = propriedade.DetalheSped.FinalidadeArquivo.HasValue ?
                                                         (byte)propriedade.DetalheSped.FinalidadeArquivo + " - " + Dominio.ValorTextoDe(propriedade.DetalheSped.FinalidadeArquivo) : string.Empty;
            this.TxtPropriedadeParticipanteCnpj.Text = Util.FormataCnpj(propriedade.DetalheSped.EntidadeCnpj);
            this.TxtPropriedadeParticipanteInscricaoEstadual.Text = propriedade.DetalheSped.EntidadeIe;
            this.TxtPropriedadeParticipanteRazaoSocial.Text       = propriedade.DetalheSped.EntidadeRazaoSocial;
            this.TxtPropriedadeOrigem.Text       = usuario != null ? usuario.Nome : USUARIO_NAO_ENCONTRADO;
            this.TxtPropriedadeDataRecepcao.Text = propriedade.DataUpload.ToString("dd/MM/yyyy HH:mm");

            if (propriedade.DetalheSped.DataProcessamentoPva.HasValue)
            {
                this.TxtPropriedadeArquivoValidado.Text        = Dominio.ValorTextoDe(propriedade.DetalheSped.StatusPva);
                this.TxtPropriedadeArquivoValidado.Visible     = true;
                this.TxtPropriedadeDataArquivoValidado.Text    = propriedade.DetalheSped.DataProcessamentoPva.Value.ToString("dd/MM/yyyy HH:mm");
                this.TxtPropriedadeDataArquivoValidado.Visible = true;
            }

            if (propriedade.DetalheSped.DataAssinatura.HasValue)
            {
                this.TxtPropriedadeArquivoAssinadoSucesso.Visible     = true;
                this.TxtPropriedadeDataArquivoAssinadoSucesso.Text    = propriedade.DetalheSped.DataAssinatura.Value.ToString("dd/MM/yyyy HH:mm");
                this.TxtPropriedadeDataArquivoAssinadoSucesso.Visible = true;
            }

            if (propriedade.DetalheSped.DataTransmissaoSefaz.HasValue)
            {
                this.TxtPropriedadeArquivoTransmitidoSucesso.Visible     = true;
                this.TxtPropriedadeDataArquivoTransmitidoSucesso.Text    = propriedade.DetalheSped.DataTransmissaoSefaz.Value.ToString("dd/MM/yyyy");
                this.TxtPropriedadeDataArquivoTransmitidoSucesso.Visible = true;
            }

            /*
             * this.LblPropriedadeArquivoConciliadoIndiciosErro.Text = propriedade.DetalheSped;
             * this.LblPropriedadeDataArquivoConciliadoIndiciosErro.Text = propriedade.DetalheSped..ToString("dd/MM/yyyy");
             */

            ////this.LblPropriedadeUsuarioUltimoAcesso = ;
            ////this.LblPropriedadeDataUltimoAcesso = ;

            this.RptArquivo.DataSource = arquivos.OrderBy(a => a.DataExecucao);
            this.RptArquivo.DataBind();
        }
Пример #6
0
        /// <summary>
        /// Reinicia todos os controles de usuário para o seu estado inicial
        /// </summary>
        private void ReiniciaControles()
        {
            Usuario        usuarioLogado = (Usuario)this.Session[ConstantesGlobais.USUARIO];
            List <Usuario> usuarios      = (List <Usuario>)GerenciamentoUsuario.CarregaUsuarios(usuarioLogado.UsuarioSpedia);

            this.TxtNome.Text              = string.Empty;
            this.TxtEmail.Text             = string.Empty;
            this.DdPerfil.SelectedValue    = byte.MinValue.ToString();
            this.BtnSalvar.CommandArgument = string.Empty;

            this.RptUsuario.DataSource = usuarios.OrderBy(u => u.Nome);
            this.RptUsuario.DataBind();
        }
Пример #7
0
        protected void ChangePassword1_ChangingPassword(object sender, EventArgs e)
        {
            ChangePassword1.ChangePasswordFailureText        = "";
            ChangePassword1.SuccessTemplateContainer.Visible = false;

            try
            {
                string senhaAtual = this.ChangePassword1.CurrentPassword.ToString();
                string novaSenha  = this.ChangePassword1.NewPassword.ToString();

                if (this.usuario != null && Autenticacao.ValidaSHA1Hash(senhaAtual, usuario.Senha))
                {
                    if (novaSenha != senhaAtual)
                    {
                        //altera senha no banco

                        string hashNovaSenha = Autenticacao.ObtemSHA1Hash(novaSenha);
                        this.usuario.Senha = hashNovaSenha;

                        if (GerenciamentoUsuario.AtualizaUsuario(this.usuario))
                        {
                            ViewState["success"] = "true";
                            ChangePassword1.SuccessTemplate.InstantiateIn(ChangePassword1);
                            ChangePassword1.ChangePasswordTemplateContainer.Visible = false;
                        }
                        else
                        {
                            ChangePassword1.ChangePasswordFailureText = "Problemas ao alterar a senha. A senha não foi alterada.";
                        }
                    }
                    else
                    {
                        ChangePassword1.ChangePasswordFailureText = "Senha nova deve ser diferente da senha atual.";
                    }
                }
                else
                {
                    ChangePassword1.ChangePasswordFailureText = "Senha atual não confere.";
                }

                ((LoginCancelEventArgs)e).Cancel = true;
                ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "temp", "hideLoading();", true);
            }
            catch (Exception ex)
            {
                Log.Info(ex.InnerException == null ? ex.Message : ex.InnerException.ToString());
                ChangePassword1.ChangePasswordFailureText = "Problemas ao alterar a senha. A senha não foi alterada.";
                ((LoginCancelEventArgs)e).Cancel          = true;
                return;
            }
        }
Пример #8
0
        /// <summary>
        /// Cria um novo usuário na API e no banco de dados local
        /// </summary>
        /// <param name="novaSenha">Senha gerada para o novo usuário</param>
        /// <returns>Usuário criado</returns>
        private Usuario CriaUsuario(string novaSenha)
        {
            Usuario    usuarioLogado = (Usuario)this.Session[ConstantesGlobais.USUARIO];
            Usuario    usuario       = new Usuario();
            UsuarioApi usuarioApi;
            string     novoNome  = this.TxtNome.Text;
            string     novoEmail = this.TxtEmail.Text;

            this.DivMensagem.Visible             = true;
            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO;

            if (!this.ValidaPreenchimento(usuario.Id, usuario.IdApi, novoNome, novoEmail))
            {
                return(null);
            }

            usuario.Nome          = novoNome;
            usuario.Email         = novoEmail;
            usuario.Perfil        = (PerfilUsuario)Convert.ToByte(this.DdPerfil.SelectedValue);
            usuario.UsuarioSpedia = usuarioLogado.UsuarioSpedia;
            usuario.SenhaSpedia   = usuarioLogado.SenhaSpedia;

            usuarioApi = new UsuarioApi()
            {
                Nome = usuario.Nome, Email = usuario.Email
            };

            usuario.IdApi = GerenciamentoUsuario.CriaUsuarioApi(usuarioApi);

            if (!usuario.IdApi.HasValue)
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_INCLUSAO_API;
                return(null);
            }


            if (GerenciamentoUsuario.CriaUsuario(usuario, novaSenha) == null)
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_INCLUSAO;
                return(null);
            }

            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO;
            this.LblMensagem.Text = MENSAGEM_SUCESSO_INCLUSAO;

            this.ReiniciaControles();

            return(usuario);
        }
Пример #9
0
        /// <summary>
        /// Obtém as notificações da conta de uso
        /// </summary>
        private void ObtemNotificacoes()
        {
            Usuario             usuario          = (Usuario)this.Session[ConstantesGlobais.USUARIO];
            ControleNotificacao controle         = GerenciamentoNotificacao.CarregaControleNotificacao(usuario.Id.Value);
            NotificacaoConta    notificacaoConta = GerenciamentoNotificacao.ObtemNotificacoes(controle.UltimaNotificacao);

            if (notificacaoConta != null && notificacaoConta.Notificacoes.Count > 0)
            {
                this.usuarios = (List <UsuarioApi>)GerenciamentoUsuario.CarregaUsuariosApi();

                this.RptNotificacao.DataSource = notificacaoConta.Notificacoes.OrderByDescending(n => n.DataNotificacao);
                this.RptNotificacao.DataBind();

                controle.UltimaNotificacao = notificacaoConta.ContinuaEm;

                GerenciamentoNotificacao.AtualizaControleNotificacao(controle);
            }
        }
Пример #10
0
        /// <summary>
        /// Executa a atualização criando a tabela de notificações e os registros para os usuários cadastrados
        /// </summary>
        public override void Up()
        {
            this.FabricaSessao = AuxiliarNHibernate.ObtemFabricaSessao();
            var sessao = this.FabricaSessao.OpenSession();

            CurrentSessionContext.Bind(sessao);
            sessao.BeginTransaction();

            List <Usuario> usuarios = (List <Usuario>)GerenciamentoUsuario.CarregaUsuarios();

            // Notificacao
            Create.Table("notificacao")
            .InSchema("dbo")
            .WithColumn("id").AsInt32().NotNullable().PrimaryKey().Identity()
            .WithColumn("id_usuario").AsInt32().NotNullable()
            .WithColumn("ultima_notificacao").AsInt64().NotNullable();

            // Controle de notificação dos usuários
            int indice = 1;

            foreach (Usuario usuario in usuarios)
            {
                Insert.IntoTable("notificacao").WithIdentityInsert().Row(new
                {
                    id                 = indice,
                    id_usuario         = usuario.Id,
                    ultima_notificacao = 0
                });

                indice++;
            }

            var transacao = sessao.Transaction;

            if (transacao != null && transacao.IsActive)
            {
                transacao.Commit();
            }

            sessao = CurrentSessionContext.Unbind(this.FabricaSessao);
            sessao.Close();
        }
Пример #11
0
        /// <summary>
        /// Realiza a verificação do usuário e a senha
        /// Se estiverem corretos, permite o acesso a área interna do sistema, caso contrário exibe mensagem de erro
        /// </summary>
        /// <param name="sender">Objeto que disparou esse evento</param>
        /// <param name="e">Contém os argumentos fornecidos nesse evento</param>
        protected void BtnEntrar_Click(object sender, EventArgs e)
        {
            Usuario usuario;
            string  login = this.TxtLogin.Text;
            string  senha = this.TxtSenha.Text;

            usuario = GerenciamentoUsuario.CarregaUsuario(login, senha);

            if (usuario != null)
            {
                this.Session[ConstantesGlobais.USUARIO] = usuario;
                Response.Redirect("~/Pages/MapaProducao");
            }
            else
            {
                this.DivMensagem.Visible             = true;
                this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO;
                this.LblMensagem.Text = MENSAGEM_ERRO_CREDENCIAIS;
            }
        }
Пример #12
0
        /// <summary>
        /// Atualiza as informações do usuário na API e no banco de dados local
        /// </summary>
        /// <param name="idUsuario">Identificador do usuário</param>
        private void AtualizaUsuario(int idUsuario)
        {
            Usuario usuarioLogado = (Usuario)this.Session[ConstantesGlobais.USUARIO];
            Usuario usuario       = GerenciamentoUsuario.CarregaUsuario(idUsuario);

            string novoNome  = this.TxtNome.Text;
            string novoEmail = this.TxtEmail.Text;

            this.DivMensagem.Visible             = true;
            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_ERRO;

            if (!this.ValidaPreenchimento(usuario.Id, usuario.IdApi, novoNome, novoEmail))
            {
                return;
            }

            usuario.Id            = usuario.Id;
            usuario.IdApi         = usuario.IdApi;
            usuario.Nome          = novoNome;
            usuario.Email         = novoEmail;
            usuario.Perfil        = (PerfilUsuario)Convert.ToByte(this.DdPerfil.SelectedValue);
            usuario.UsuarioSpedia = usuarioLogado.UsuarioSpedia;
            usuario.SenhaSpedia   = usuarioLogado.SenhaSpedia;

            if (!GerenciamentoUsuario.EditaUsuarioApi(usuario))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_EDICAO_API;
                return;
            }

            if (!GerenciamentoUsuario.AtualizaUsuario(usuario))
            {
                this.LblMensagem.Text = MENSAGEM_ERRO_EDICAO;
                return;
            }

            this.DivMensagem.Attributes["class"] = ConstantesGlobais.CLASSE_MENSAGEM_SUCESSO;
            this.LblMensagem.Text = MENSAGEM_SUCESSO_EDICAO;

            this.ReiniciaControles();
        }
Пример #13
0
        /// <summary>
        /// Define os valores de cada controle de propriedades de arquivo para exibição
        /// </summary>
        /// <param name="propriedade">Propriedades do arquivo</param>
        private void DefineControlePropriedades(PropriedadeObjeto propriedade)
        {
            List <UsuarioApi> usuarios            = (List <UsuarioApi>)GerenciamentoUsuario.CarregaUsuariosApi();
            string            linkDownloadArquivo = GerenciamentoArquivo.ObtemLinkParaDownload(new List <int>()
            {
                propriedade.IdArquivo
            });

            UsuarioApi usuario = usuarios.Exists(u => u.Id == propriedade.IdUsuarioUpload) ? usuarios.First(u => u.Id == propriedade.IdUsuarioUpload) : null;

            this.TxtPropriedadeChaveAcesso.Text     = propriedade.DetalheDfe.Chave;
            this.TxtPropriedadeTipoDocumento.Text   = Dominio.ValorTextoDe(propriedade.TipoArquivo);
            this.TxtPropriedadeNumeroDocumento.Text = propriedade.DetalheDfe.Numero.ToString();
            this.TxtPropriedadeDataEmissao.Text     = propriedade.DetalheDfe.DataEmissao.Value.ToString("dd/MM/yyyy");

            this.TxtPropriedadeEmissorCnpj.Text = Util.FormataCnpj(propriedade.DetalheDfe.EmitenteCnpj);
            this.TxtPropriedadeEmissorInscricaoEstadual.Text = propriedade.DetalheDfe.EmitenteIe;
            this.TxtPropriedadeEmissorRazaoSocial.Text       = propriedade.DetalheDfe.EmitenteRazaoSocial;

            this.TxtPropriedadeDestinatarioCnpj.Text = Util.FormataCnpj(propriedade.DetalheDfe.DestinatarioCnpj);
            this.TxtPropriedadeDestinatarioInscricaoEstadual.Text = propriedade.DetalheDfe.DestinatarioIe;
            this.TxtPropriedadeDestinatarioRazaoSocial.Text       = propriedade.DetalheDfe.DestinatarioRazaoSocial;

            this.TxtPropriedadeOrigem.Text            = usuario != null ? usuario.Nome : USUARIO_NAO_ENCONTRADO;
            this.TxtPropriedadeDataRecepcao.Text      = propriedade.DataUpload.ToString("dd/MM/yyyy HH:mm");
            this.TxtPropriedadeSituacaoSefaz.Text     = propriedade.DetalheDfe.StatusSefaz;
            this.TxtPropriedadeDataSituacaoSefaz.Text = propriedade.DetalheDfe.DataStatusSefaz.HasValue ? propriedade.DetalheDfe.DataStatusSefaz.Value.ToString("dd/MM/yyyy HH:mm") : string.Empty;
            this.TxtPropriedadeIntegridadeArquivoProtocoloAutorizacao.Text     = (propriedade.DetalheDfe.EProtocoloPresente.HasValue && propriedade.DetalheDfe.EProtocoloPresente.Value) ? TEXTO_COM_PROTOCOLO_AUTORIZACAO : TEXTO_SEM_PROTOCOLO_AUTORIZACAO;
            this.TxtPropriedadeIntegridadeArquivoAssinaturaDigital.Text        = (propriedade.DetalheDfe.EAssinaturaValida.HasValue && propriedade.DetalheDfe.EAssinaturaValida.Value) ? TEXTO_ASSINATURA_DIGITAL_VALIDA : TEXTO_ASSINATURA_DIGITAL_INVALIDA;
            this.TxtPropriedadeDataIntegridadeArquivoAssinaturaDigital.Text    = propriedade.DetalheDfe.DataStatusSefaz.HasValue ? propriedade.DetalheDfe.DataStatusSefaz.Value.ToString("dd/MM/yyyy HH:mm") : string.Empty;
            this.TxtPropriedadeDataIntegridadeArquivoProtocoloAutorizacao.Text = propriedade.DetalheDfe.DataStatusSefaz.HasValue ? propriedade.DetalheDfe.DataStatusSefaz.Value.ToString("dd/MM/yyyy HH:mm") : string.Empty;
            ////TxtPropriedadeDataManifestacaoDestinatario.Text = ;
            ////TxtPropriedadeUsuarioUltimoAcesso.Text = ;
            ////TxtPropriedadeDataUltimoAcesso.Text = ;

            this.BtnPropriedadeDownload.CommandArgument = propriedade.IdArquivo.ToString();
        }