/// <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); }
/// <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); }
/// <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(); }
/// <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(); }
/// <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(); }
/// <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(); }
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; } }
/// <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); }
/// <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); } }
/// <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(); }
/// <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; } }
/// <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(); }
/// <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(); }