protected void _btnSalvarGrupo_Click(object sender, EventArgs e) { if ((_lstUAs.Items.Count == 0) && (divUA.Visible)) { _lblMessageInsert.Text = UtilBO.GetErroMessage("Nenhum grupo foi adicionado.", UtilBO.TipoMensagem.Alerta); } else { try { //Carrega lista de entidade e Unidade administrativas List <SYS_UsuarioBO.TmpEntidadeUA> lt = new List <SYS_UsuarioBO.TmpEntidadeUA>(); Guid gru_id = new Guid(_ddlGrupos.SelectedValue); int usg_situacao = (_ckbGrupo_Bloqueado.Checked) ? 2 : 1; if (_ddlGrupos.SelectedIndex.Equals(0)) { throw new ArgumentException("Sistema - grupo é obrigatório."); } else { 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(gru_id, ent_id, uad_id, lt); //List<SYS_UsuarioBO.TmpEntidadeUA> ltUA = new List<SYS_UsuarioBO.TmpEntidadeUA>(); //foreach (KeyValuePair<Guid, List<SYS_UsuarioBO.TmpEntidadeUA>> kv in _VS_EntidadeUA) //{ // foreach (SYS_UsuarioBO.TmpEntidadeUA aux in kv.Value.ToList()) // ltUA.Add(aux); //} if (_VS_usu_id == Guid.Empty && _VS_EntidadeUA.Count > 0) { UCComboEntidadeUsuario._Combo.Enabled = false; _updUsuario.Update(); } } //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(new Guid(_ddlGrupos.SelectedValue))) { _VS_EntidadeUA[gru_id] = lt; } else { _VS_EntidadeUA.Add(gru_id, lt); } } //Adciona o grupo caso ainda não exista SYS_UsuarioBO.AddTmpGrupo(gru_id, _VS_Grupos, usg_situacao); //Atualiza o grid _LoadGridGrupos(); //Registra script para fechar a janela //ScriptManager.RegisterClientScriptBlock(this._btnSalvarGrupo, this._btnSalvarGrupo.GetType(), "SalvarGrupo", "$('#divAddGrupos').dialog('close');", true); ScriptManager.RegisterClientScriptBlock(this, GetType(), "SalvarGrupo", "$('#divAddGrupos').dialog('close');", true); } } catch (ArgumentException err) { _lblMessageInsert.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); } catch { _lblMessageInsert.Text = UtilBO.GetErroMessage("Erro ao tentar incluir o grupo.", UtilBO.TipoMensagem.Erro); } } }
/// <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 }
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(); } } }