/// <summary> /// Método utilizado via Web API para inclusão de novos grupos de usuário /// </summary> /// <param name="entityUsuarioAPI">Usuário da API usado para gravar log de ação</param> public static void AssociateUserGroup(Guid usu_id, AssociarUsuarioGrupoEntradaDTO data, CFG_UsuarioAPI entityUsuarioAPI) { #region [ Validação de campos obrigatórios ] if (data == null || data.usergroup == null || data.usergroup.Count(p => p.gru_id != Guid.Empty) == 0) { throw new ValidationException("Obrigatório no mínimo um Id de grupo do usuário."); } #endregion SYS_Usuario entity = SYS_UsuarioBO.GetEntity(new SYS_Usuario { usu_id = usu_id }); entity.usu_senha = string.Empty; entity.usu_dataAlteracao = DateTime.Now; if (!entity.IsNew) { // Validação de usuário padrão do sistema if (entity.usu_situacao == (byte)SYS_UsuarioBO.eSituacao.Padrao_Sistema) { throw new ValidationException("Não é possível alterar dados do usuário padrão do sistema."); } SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos> grupos = new SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>(); SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> > grupoUas = new SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> >(); SYS_UsuarioBO.GetGruposUsuario(entity.usu_id, grupos, grupoUas); foreach (UsuarioGrupoDTO grupo in data.usergroup) { // Adiciona o grupo if (grupo.gru_id != Guid.Empty) { SYS_UsuarioBO.AddTmpGrupo(grupo.gru_id, grupos, 1); // Adiciona a unidade administrativa ao grupo, caso necessário if (grupo.uad_id != Guid.Empty) { List <SYS_UsuarioBO.TmpEntidadeUA> ltEntidadeUA = grupoUas.ContainsKey(grupo.gru_id) ? grupoUas[grupo.gru_id] : new List <SYS_UsuarioBO.TmpEntidadeUA>(); SYS_UsuarioBO.AddTmpEntidadeUA(grupo.gru_id, entity.ent_id, grupo.uad_id, ltEntidadeUA); } } } SYS_UsuarioBO.Save(entity, grupos, grupoUas, false, string.Empty, string.Empty, string.Empty, string.Empty, null); } else { throw new ValidationException("Usuário não existe."); } #region [ Log de ação] LOG_UsuarioAPIBO.Save ( new LOG_UsuarioAPI { usu_id = entity.usu_id , uap_id = entityUsuarioAPI.uap_id , lua_dataHora = DateTime.Now , lua_acao = (byte)LOG_UsuarioAPIBO.eAcao.AssociacaoUsuarioGrupo } ); #endregion }
/// <summary> /// Método utilizado via Web API para alteração de Usuários /// </summary> /// <param name="data">Parametros de entrada: Id Entidade, Id Grupo, ID Usuario, Nome, /// CPF, Data de nascimento, E-mail, Senha</param> /// <param name="entityUsuarioAPI">Usuário da API usado para gravar log de ação</param> public static void Update(UsuarioEntradaDTO data, CFG_UsuarioAPI entityUsuarioAPI) { #region [ Validação de campos obrigatórios ] if (data.ent_id == Guid.Empty || string.IsNullOrWhiteSpace(data.usu_login)) { throw new ValidationException("Id da entidade e login do usuário são obrigatórios."); } #endregion SYS_Usuario entity = new SYS_Usuario { ent_id = data.ent_id , usu_login = data.usu_login }; SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entity); PES_Pessoa entityPessoa = null; if (!entity.IsNew) { //Validação de usuário padrão do sistema if (entity.usu_situacao == (byte)SYS_UsuarioBO.eSituacao.Padrao_Sistema) { throw new ValidationException("Não é possível alterar dados do usuário padrão do sistema."); } //Se o usuário recuperado não possuir pessoa, pula os passos de update de Pessoa if (entity.pes_id != Guid.Empty) { #region [Pessoa] entityPessoa = new PES_Pessoa { pes_id = entity.pes_id }; PES_PessoaBO.GetEntity(entityPessoa); if (!string.IsNullOrWhiteSpace(data.nome) && entityPessoa.pes_nome.ToLower() != data.nome.ToLower()) { entityPessoa.pes_nome = data.nome; } if (data.dataNascimento != new DateTime() && entityPessoa.pes_dataNascimento != data.dataNascimento) { entityPessoa.pes_dataNascimento = data.dataNascimento; } if (data.sexo == 1 || data.sexo == 2) { entityPessoa.pes_sexo = data.sexo; } entityPessoa.pes_dataAlteracao = DateTime.Now; #region [Validações CPF] Guid?tdo_id = null; bool criarCPF = false; //Recupera os documentos da pessoa DataTable documentosPessoa = PES_PessoaDocumentoBO.GetSelect(entityPessoa.pes_id, false, 1, 1); //Se CPF existir, realiza validações if (!string.IsNullOrWhiteSpace(data.CPF)) { if (UtilBO._ValidaCPF(data.CPF)) { //Recupera o tipo de documento CPF string tipoDocCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF); if (!string.IsNullOrEmpty(tipoDocCPF)) { tdo_id = Guid.Parse(tipoDocCPF); criarCPF = true; } } else { throw new ValidationException("CPF inválido."); } if (documentosPessoa.Rows.Count > 0) { //Recupera o indice da linha que contém o documento do tipo CPF var indiceRowCPF = documentosPessoa.AsEnumerable() .Select((row, index) => new { row, index }) .Where(item => item.row.Field <Guid>("tdo_id") == tdo_id) .Select(item => item.index).ToArray(); //Se a pessoa possui um documento do tipo CPF, verifica se precisa alterar if (indiceRowCPF.Count() > 0) { if (documentosPessoa.Rows[indiceRowCPF[0]]["numero"].ToString() != data.CPF) { documentosPessoa.Rows[indiceRowCPF[0]]["numero"] = data.CPF; } } else { //Pessoa ainda não possue CPF, nesse caso cria usando o datatable recuperado DataRow rowDoc = documentosPessoa.NewRow(); rowDoc["tdo_id"] = tdo_id; rowDoc["unf_idEmissao"] = Guid.Empty.ToString(); rowDoc["unf_idAntigo"] = Guid.Empty.ToString(); rowDoc["numero"] = data.CPF; rowDoc["dataemissao"] = string.Empty; rowDoc["orgaoemissao"] = string.Empty; rowDoc["info"] = string.Empty; documentosPessoa.Rows.Add(rowDoc); } criarCPF = false; } if (criarCPF) { if (tdo_id != null) { //Cria o datatable na estrutura necessária com o CPF enviado documentosPessoa = RetornaDocumento(data.CPF); } } } #endregion PES_PessoaDeficiencia entityPessoaDeficiencia = new PES_PessoaDeficiencia { pes_id = Guid.Empty, tde_id = Guid.Empty, IsNew = true }; PES_PessoaBO.Save(entityPessoa , entityPessoaDeficiencia , new DataTable() //dtEndereco , new DataTable() //dtContato , documentosPessoa //dtDocumento , new DataTable() //dtCertidao , Guid.Empty //pai_idAntigo , Guid.Empty //cid_idAntigo , Guid.Empty //pes_idPaiAntigo , Guid.Empty //pes_idMaeAntigo , Guid.Empty //tes_idAntigo , Guid.Empty //tde_idAntigo , null //arquivosPermitidos , 0 //tamanhoMaximoKB , null //entFoto , false //ExcluirImagemAtual ); #endregion } #region [Usuário] //entity.usu_login = data.usu_login; if (!string.IsNullOrWhiteSpace(data.email) && entity.usu_email != data.email) { entity.usu_email = data.email; } //Se não vier senha, seta a senha da entidade como vazia para o método do sistema //não encriptar novamente o que já estava encriptado if (string.IsNullOrWhiteSpace(data.senha)) { entity.usu_senha = string.Empty; } else { entity.usu_senha = data.senha; } if (entityPessoa != null) { entity.pes_id = entityPessoa.pes_id; } entity.usu_criptografia = Convert.ToByte(eCriptografa.TripleDES); entity.usu_dataAlteracao = DateTime.Now; SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos> grupos = new SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>(); SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> > entidadeUA = new SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> >(); //Se vier grupos cria a lista com base nesses grupos if (data.gru_id.Count() > 0) { foreach (Guid gruId in data.gru_id) { SYS_UsuarioBO.AddTmpGrupo(gruId, grupos, 1); } } else { //Senão, recupera os grupos do usuário para enviar ao método salvar SYS_UsuarioBO.GetGruposUsuario(entity.usu_id, grupos, entidadeUA); } SYS_UsuarioBO.Save(entity, grupos, entidadeUA, false, data.nome, string.Empty, string.Empty, string.Empty, null); #endregion } else { throw new ValidationException("Usuário não existe."); } #region [ Log de ação] LOG_UsuarioAPIBO.Save ( new LOG_UsuarioAPI { usu_id = entity.usu_id , uap_id = entityUsuarioAPI.uap_id , lua_dataHora = DateTime.Now , lua_acao = (byte)LOG_UsuarioAPIBO.eAcao.AlteracaoUsuario } ); #endregion }
/// <summary> /// Método utilizado via Web API para criação de Usuários /// OBSERVACAO: Este metodo faz uma busca por nome, data de nascimento e CPF /// para tentar vincular uma pessoa já existente com estes dados ao usuario /// que esta sendo criado, sendo que apenas nome e data de nascimento são requeridos. /// </summary> /// <param name="data">Parametros de entrada: Id Entidade, Id Grupo, ID Usuario, Nome, /// CPF, Data de nascimento, E-mail, Senha</param> /// <param name="entityUsuarioAPI">Usuário da API usado para gravar log de ação</param> public static void Create(UsuarioEntradaDTO data, CFG_UsuarioAPI entityUsuarioAPI) { #region [ Validação de campos obrigatórios ] if (data.ent_id == Guid.Empty) { throw new ValidationException("Id da entidade é obrigatório."); } if (string.IsNullOrWhiteSpace(data.usu_login)) { throw new ValidationException("Login do usuário é obrigatório."); } if (data.gru_id.Count() == 0) { throw new ValidationException("Ao menos um grupo deve ser informado."); } if (data.dataNascimento == new DateTime()) { throw new ValidationException("Data de nascimento é obrigatória."); } if (data.sexo != null && data.sexo > 2) { throw new ValidationException("Para o sexo informe: 1 - masculino ou 2 - feminino"); } #endregion SYS_Usuario entity = new SYS_Usuario { ent_id = data.ent_id , usu_login = data.usu_login }; SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entity); // Verifica se o id do usuário enviado existe na base de dados. if (entity.IsNew) { Guid? tdo_id = null; bool savePessoaReturn = false; PES_Pessoa entityPessoa = null; //Se não for informado nome e data de nascimento não cria a pessoa if (!string.IsNullOrWhiteSpace(data.nome) && data.dataNascimento != null) { #region [Validações CPF] //Se CPF existir, realiza validações if (!string.IsNullOrWhiteSpace(data.CPF)) { if (UtilBO._ValidaCPF(data.CPF)) { //Recupera o tipo de documento CPF, utilizado para recuperar a pessoa string tipoDocCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF); if (!string.IsNullOrEmpty(tipoDocCPF)) { tdo_id = Guid.Parse(tipoDocCPF); } } else { throw new ValidationException("CPF inválido."); } } #endregion //Recupera a pessoa entityPessoa = PES_PessoaBO.SelecionaPorNomeNascimentoDocumento(data.nome, data.dataNascimento, tdo_id, data.CPF); //Se pessoa não existir, faz o cadastro com as informações básicas if (entityPessoa.pes_id == Guid.Empty) { #region [Cria Pessoa] //Adiciona valores na entidade de pessoa entityPessoa.pes_id = Guid.Empty; entityPessoa.pes_nome = data.nome; entityPessoa.pes_sexo = data.sexo; entityPessoa.pes_nome_abreviado = string.Empty; entityPessoa.pai_idNacionalidade = Guid.Empty; entityPessoa.pes_naturalizado = false; entityPessoa.cid_idNaturalidade = Guid.Empty; entityPessoa.pes_dataNascimento = (String.IsNullOrEmpty(data.dataNascimento.ToString()) ? new DateTime() : Convert.ToDateTime(data.dataNascimento.ToString())); entityPessoa.pes_racaCor = Convert.ToByte(null); entityPessoa.pes_idFiliacaoPai = Guid.Empty; entityPessoa.pes_idFiliacaoMae = Guid.Empty; entityPessoa.tes_id = Guid.Empty; entityPessoa.pes_estadoCivil = Convert.ToByte(null); entityPessoa.pes_situacao = 1; PES_PessoaDeficiencia entityPessoaDeficiencia = new PES_PessoaDeficiencia { pes_id = Guid.Empty, tde_id = Guid.Empty, IsNew = true }; savePessoaReturn = PES_PessoaBO.Save(entityPessoa , entityPessoaDeficiencia , new DataTable() //dtEndereco , new DataTable() //dtContato , RetornaDocumento(data.CPF) //dtDocumento , new DataTable() //dtCertidao , Guid.Empty //pai_idAntigo , Guid.Empty //cid_idAntigo , Guid.Empty //pes_idPaiAntigo , Guid.Empty //pes_idMaeAntigo , Guid.Empty //tes_idAntigo , Guid.Empty //tde_idAntigo , null //arquivosPermitidos , 0 //tamanhoMaximoKB , null //entFoto , false //ExcluirImagemAtual ); #endregion } } #region [ Cria usuário ] entity.ent_id = data.ent_id; entity.usu_id = Guid.Empty; entity.usu_login = data.usu_login; entity.usu_email = string.IsNullOrEmpty(data.email) ? string.Empty : data.email; entity.usu_senha = string.IsNullOrEmpty(data.senha) ? string.Empty : data.senha; //Se foi recuperado ou criado uma pessoa, vincula o pes_id if (entityPessoa != null) { entity.pes_id = entityPessoa.pes_id; } entity.usu_criptografia = Convert.ToByte(eCriptografa.TripleDES); entity.usu_situacao = 1; entity.usu_dataAlteracao = DateTime.Now; entity.usu_dataCriacao = DateTime.Now; entity.usu_dominio = string.Empty; entity.usu_integracaoAD = (byte)SYS_UsuarioBO.eIntegracaoAD.NaoIntegrado; entity.IsNew = true; SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos> grupos = new SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>(); foreach (Guid gruId in data.gru_id) { SYS_UsuarioBO.AddTmpGrupo(gruId, grupos, 1); } SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> > entidadeUA = new SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> >(); SYS_UsuarioBO.Save(entity, grupos, entidadeUA, false, data.nome, string.Empty, string.Empty, string.Empty, null); #endregion } else { throw new ValidationException("Usuário já existe."); } #region [ Log de ação] LOG_UsuarioAPIBO.Save ( new LOG_UsuarioAPI { usu_id = entity.usu_id , uap_id = entityUsuarioAPI.uap_id , lua_dataHora = DateTime.Now , lua_acao = (byte)LOG_UsuarioAPIBO.eAcao.CriacaoUsuario } ); #endregion }
protected void _btnSalvar_Click(object sender, EventArgs e) { bool validado = true; try { validado = ValidarIntegracaoAD(); ManageUserLive live = new ManageUserLive(); if (_ckbUsuarioLive.Checked) { if (!live.IsContaEmail(_txtEmail.Text)) { validado = false; _lblMessage.Text = UtilBO.GetErroMessage("E-mail inválido para integrar usuário live.", UtilBO.TipoMensagem.Alerta); } else { if (!live.VerificarContaEmailExistente(new UserLive { email = _txtEmail.Text })) { validado = false; _lblMessage.Text = UtilBO.GetErroMessage("E-mail não encontrado no live para realizar integração.", UtilBO.TipoMensagem.Alerta); } } } else { if (live.IsContaEmail(_txtEmail.Text)) { validado = false; _lblMessage.Text = UtilBO.GetErroMessage("Integrar usuário live é obrigatório, o email " + _txtEmail.Text + " contém o domínio para integração com live.", UtilBO.TipoMensagem.Alerta); } } if (integracaoAD == SYS_UsuarioBO.eIntegracaoAD.IntegradoADReplicacaoSenha && !string.IsNullOrEmpty(_txtSenha.Text)) { string regTamanhoSenha = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TAMANHO_SENHA_USUARIO); Regex regex = new Regex(regTamanhoSenha); if (!regex.IsMatch(_txtSenha.Text)) { string mensagemTamanho = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoComplexidadeSenhaTamanho); throw new CoreLibrary.Validation.Exceptions.ValidationException(string.IsNullOrEmpty(mensagemTamanho) ? String.Format("A senha deve conter {0}.", UtilBO.GetMessageTamanhoByRegex(regTamanhoSenha)) : mensagemTamanho); } regex = new Regex(SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.FORMATO_SENHA_USUARIO)); if (!regex.IsMatch(_txtSenha.Text)) { // Mensagem de validação do formato da senha. string mensagemFormato = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoComplexidadeSenhaFormato); throw new CoreLibrary.Validation.Exceptions.ValidationException(string.IsNullOrEmpty(mensagemFormato) ? "A senha deve conter pelo menos uma combinação de letras e números ou letras maiúsculas e minúsculas ou algum caracter especial (!, @, #, $, %, &) somados a letras e/ou números." : mensagemFormato); } } } catch (CoreLibrary.Validation.Exceptions.ValidationException err) { _lblMessage.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); validado = false; } catch (Exception ex) { ApplicationWEB._GravaErro(ex); _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o usuário.", UtilBO.TipoMensagem.Erro); validado = false; } if (validado) { if (chkIntegracaoExterna.Checked && ddlIntegracaoExternaTipo.SelectedIndex == 0) { _lblMessage.Text = UtilBO.GetErroMessage("Realizar Integração por WebService Externo é obrigatório.", UtilBO.TipoMensagem.Alerta); } else { if ((integracaoAD == SYS_UsuarioBO.eIntegracaoAD.IntegradoAD) && ((_ddlDominios.SelectedIndex == 0) || (_ddlDominios.SelectedIndex == _VS_OutrosDominios && string.IsNullOrEmpty(_txtDominio.Text)))) { _lblMessage.Text = UtilBO.GetErroMessage("Domínio é obrigatório.", UtilBO.TipoMensagem.Alerta); } else { try { SYS_Usuario entity = new SYS_Usuario { ent_id = new Guid(UCComboEntidadeUsuario._Combo.SelectedValue) , usu_id = _VS_usu_id , usu_login = _txtLogin.Text , usu_email = _txtEmail.Text , usu_senha = string.IsNullOrEmpty(_txtSenha.Text) ? string.Empty : _txtSenha.Text , pes_id = string.IsNullOrEmpty(_txtPes_id.Value) ? Guid.Empty : new Guid(_txtPes_id.Value) , usu_criptografia = !string.IsNullOrEmpty(_txtSenha.Text) || string.IsNullOrEmpty(_txtCriptografia.Value) ? Convert.ToByte(eCriptografa.SHA512) : Convert.ToByte(_txtCriptografia.Value) , usu_situacao = 1 , usu_dataAlteracao = DateTime.Now , usu_dataCriacao = DateTime.Now , usu_dominio = (_ddlDominios.SelectedIndex == _VS_OutrosDominios) ? _txtDominio.Text : _ddlDominios.SelectedValue , usu_integracaoAD = (byte)integracaoAD , IsNew = (_VS_usu_id != Guid.Empty) ? false : true , usu_integracaoExterna = Convert.ToInt16(ddlIntegracaoExternaTipo.SelectedIndex.ToString()) }; if (_chkExpiraSenha.Checked) { entity.usu_situacao = 5; } if (_chkBloqueado.Checked) { entity.usu_situacao = 2; } if (SYS_UsuarioBO.Save(entity, _VS_Grupos, _VS_EntidadeUA, _chkSenhaAutomatica.Checked, _txtPessoa.Text, __SessionWEB.TituloGeral, ApplicationWEB._EmailHost, ApplicationWEB._EmailSuporte, null, entity.usu_integracaoAD == (byte)SYS_UsuarioBO.eIntegracaoAD.IntegradoADReplicacaoSenha, ApplicationWEB.EmailRemetente)) { if (_VS_usu_id == Guid.Empty) { _VS_usu_id = entity.usu_id; ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "usu_id: " + _VS_usu_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Usuário incluído com sucesso."), UtilBO.TipoMensagem.Sucesso); } else { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "usu_id: " + _VS_usu_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Usuário alterado com sucesso."), UtilBO.TipoMensagem.Sucesso); } if (__SessionWEB.__UsuarioWEB.Usuario.usu_id == _VS_usu_id) { Response.Redirect(ApplicationWEB._DiretorioVirtual + ApplicationWEB._PaginaLogoff, false); } else { Response.Redirect(String.Concat(__SessionWEB._AreaAtual._Diretorio, "Usuario/Busca.aspx"), false); } } else { _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o usuário.", UtilBO.TipoMensagem.Erro); } } catch (CoreLibrary.Validation.Exceptions.ValidationException err) { _lblMessage.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); } catch (ArgumentException err) { _lblMessage.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); } catch (DuplicateNameException err) { _lblMessage.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o usuário.", UtilBO.TipoMensagem.Erro); } } }// valida integracao } }
protected void _btnSalvarGrupo_Click(object sender, EventArgs e) { if ((_lstUAs.Items.Count == 0) && (divUA.Visible)) { _lblMessageUsuario.Text = UtilBO.GetErroMessage("Nenhuma unidade administrativa foi adicionada.", UtilBO.TipoMensagem.Alerta); } else if (_VS_IsNew && _VS_Grupos.ContainsKey(_VS_gru_id)) { _lblMessageUsuario.Text = UtilBO.GetErroMessage("O usuário selecionado já está cadastrado nesse grupo.", UtilBO.TipoMensagem.Alerta); } else { try { //Carrega lista de entidade e Unidade administrativas List <SYS_UsuarioBO.TmpEntidadeUA> lt = new List <SYS_UsuarioBO.TmpEntidadeUA>(); int usg_situacao = (_ckbGrupo_Bloqueado.Checked) ? 2 : 1; if (divUA.Visible) { foreach (ListItem item in _lstUAs.Items) { Guid ent_id; Guid uad_id = Guid.Empty; //Checa se é Unidade Administrativa ou entidade if (divUA.Visible) { //Se unidade administrativa separa os ids string[] ids = item.Value.Split(';'); ent_id = new Guid(ids[0]); uad_id = new Guid(ids[1]); } else { ent_id = new Guid(item.Value); } //Adciono a lista de entidade e unidade SYS_UsuarioBO.AddTmpEntidadeUA(_VS_gru_id, ent_id, uad_id, lt); } //Checa se a lista já existe no viewstate para o grupo associado. //Caso já exista uma lista de entidades ou ua, substitui pela nova lista. //Caso contrário adiciona a nova lista if (_VS_EntidadeUA.ContainsKey(_VS_gru_id)) { _VS_EntidadeUA[_VS_gru_id] = lt; } else { _VS_EntidadeUA.Add(_VS_gru_id, lt); } } //Adciona o grupo caso ainda não exista SYS_UsuarioBO.AddTmpGrupo(_VS_gru_id, _VS_Grupos, usg_situacao); SYS_Usuario usu = new SYS_Usuario { usu_id = new Guid(_txtUsu_id.Value) }; SYS_UsuarioBO.GetEntity(usu); usu.usu_senha = string.Empty; if (SYS_UsuarioBO.Save(usu, _VS_Grupos, _VS_EntidadeUA, false, string.Empty, string.Empty, string.Empty, string.Empty, null)) { if (_VS_IsNew) { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "gru_id: " + _VS_gru_id + "; usu_id: " + _txtUsu_id.Value); _lblMessage.Text = UtilBO.GetErroMessage(String.Format("Usuário associado com sucesso."), UtilBO.TipoMensagem.Sucesso); } else { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "gru_id: " + _VS_gru_id + "; usu_id: " + _txtUsu_id.Value); _lblMessage.Text = UtilBO.GetErroMessage(String.Format("Associação do usuário alterada com sucesso."), UtilBO.TipoMensagem.Sucesso); } } else { _lblMessageUsuario.Text = UtilBO.GetErroMessage("Erro ao tentar salvar a associação do usuário.", UtilBO.TipoMensagem.Erro); } _LoadGridUsuarios(); //Registra script para fechar a janela ScriptManager.RegisterClientScriptBlock(this, GetType(), "SalvarUsuario", "$('#divUsuario').dialog('close');", true); } catch (ArgumentException ex) { _lblMessageUsuario.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); _lblMessageUsuario.Text = UtilBO.GetErroMessage("Erro ao tentar salvar a associação do usuário.", UtilBO.TipoMensagem.Erro); } finally { _updUsuario.Update(); _updUsuarioGrid.Update(); } } }
protected void btnEnviar_Click(object sender, EventArgs e) { if (ValidarEsqueciSenha()) { try { DataTable dt = SYS_UsuarioBO.GetSelectBy_ent_id_usu_email(UCComboEntidade2.Valor, txtEmail.Text); if (dt.Rows.Count == 0) { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Erro no envio de senha. Usuário não encontrado."); lblMessage.Text = UtilBO.GetErroMessage("Usuário não encontrado.", UtilBO.TipoMensagem.Alerta); } else { if (!String.IsNullOrEmpty(dt.Rows[0]["usu_dominio"].ToString())) { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Não é possível recuperar a senha pois o usuário solicitado está ligado no Active Directory."); lblMessage.Text = UtilBO.GetErroMessage("Não é possível recuperar a senha pois o usuário solicitado está ligado no Active Directory, contate o administrador de rede do seu domínio.", UtilBO.TipoMensagem.Alerta); } else if (dt.Rows[0]["usu_situacao"].ToString() == "1" || dt.Rows[0]["usu_situacao"].ToString() == "5") { try { SYS_Usuario usu = new SYS_Usuario { usu_id = new Guid(dt.Rows[0]["usu_id"].ToString()) }; SYS_UsuarioBO.GetEntity(usu); PES_Pessoa pes = new PES_Pessoa { pes_id = usu.pes_id }; PES_PessoaBO.GetEntity(pes); usu.usu_situacao = 5; SYS_UsuarioBO.Save(usu, pes.pes_nome, __SessionWEB.TituloGeral, ApplicationWEB._EmailHost, ApplicationWEB._EmailSuporte); ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Senha enviada para o e-mail com sucesso."); lblMessage.Text = UtilBO.GetErroMessage("Senha enviada para o e-mail com sucesso.", UtilBO.TipoMensagem.Sucesso); } catch (DuplicateNameException ex) { lblMessage.Text = UtilBO.GetErroMessage(ex.Message, UtilBO.TipoMensagem.Alerta); ScriptManager.RegisterClientScriptBlock(this, GetType(), "EsqueciSenhaErro", "$('#divEsqueciSenha').dialog('close');", true); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar enviar e-mail com a senha para o usuário.", UtilBO.TipoMensagem.Erro); ScriptManager.RegisterClientScriptBlock(this, GetType(), "EsqueciSenhaErro", "$('#divEsqueciSenha').dialog('close');", true); } } else if (dt.Rows[0]["usu_situacao"].ToString() == "4") { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Erro no envio de senha. Usuário padrão."); lblMessage.Text = UtilBO.GetErroMessage("Usuário padrão.", UtilBO.TipoMensagem.Alerta); } else { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Login, "Erro no envio de senha. Usuário bloqueado."); lblMessage.Text = UtilBO.GetErroMessage("Usuário bloqueado.", UtilBO.TipoMensagem.Alerta); } } ScriptManager.RegisterClientScriptBlock(this, GetType(), "EsqueciSenha", "$('#divEsqueciSenha').dialog('close');", true); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); lblMessageEsqueciSenha.Text = UtilBO.GetErroMessage("Erro ao tentar enviar e-mail com a senha para o usuário.", UtilBO.TipoMensagem.Erro); } } else { updEsqueciSenha.Update(); } }