public void CargaGrupoAccesoDefault() { try { List <HelperAsignacionRol> lstFinal = GruposSeleccionados; Rol rolAcceso = _serviciosRoles.ObtenerRoles(IdTipoUsuario, false).Single(s => s.Id == (int)BusinessVariables.EnumRoles.AccesoCentroSoporte); HelperAsignacionRol rol = lstFinal.SingleOrDefault(s => s.IdRol == rolAcceso.Id) ?? new HelperAsignacionRol { IdRol = rolAcceso.Id, DescripcionRol = rolAcceso.Descripcion, Grupos = new List <HelperAsignacionGrupoUsuarios>() }; foreach (GrupoUsuario grupo in _servicioGrupoUsuario.ObtenerGruposUsuarioByIdRolTipoUsuario((int)BusinessVariables.EnumRoles.AccesoCentroSoporte, IdTipoUsuario, false).Where(w => w.Sistema)) { HelperAsignacionGrupoUsuarios grupos = new HelperAsignacionGrupoUsuarios { IdGrupo = grupo.Id, IdTipoGrupo = grupo.IdTipoGrupo, DescripcionGrupo = grupo.Descripcion, }; rol.Grupos.Add(grupos); } if (rol.Grupos.Any()) { lstFinal.Add(rol); } GruposSeleccionados = lstFinal; if (OnTerminarModal != null) { OnTerminarModal(); } } catch (Exception e) { throw new Exception(e.Message); } }
protected void btnTerminar_OnClick(object sender, EventArgs e) { try { List <HelperAsignacionRol> lstFinal = GruposSeleccionados; List <HelperAsignacionRol> tmplst = new List <HelperAsignacionRol>(); HelperAsignacionRol rol = tmplst.SingleOrDefault(s => s.IdRol == int.Parse(ddlRol.SelectedValue)) ?? new HelperAsignacionRol { IdRol = int.Parse(ddlRol.SelectedValue), DescripcionRol = ddlRol.SelectedItem.Text, Grupos = new List <HelperAsignacionGrupoUsuarios>() }; foreach (RepeaterItem item in rptGruposSub.Items) { CheckBox chkGrupo = (CheckBox)item.FindControl("chkGrupo"); if (!chkGrupo.Checked) { continue; } Label lblIdGrupo = (Label)item.FindControl("lblIdGrupo"); Label lblTipoGrupo = (Label)item.FindControl("lblTipoGrupo"); if (rol.Grupos != null && rol.Grupos.Any(a => a.IdGrupo == int.Parse(lblIdGrupo.Text))) { rol.Grupos.Remove(rol.Grupos.Single(s => s.IdGrupo == int.Parse(lblIdGrupo.Text))); } HelperAsignacionGrupoUsuarios grupo = new HelperAsignacionGrupoUsuarios { IdGrupo = int.Parse(lblIdGrupo.Text), IdTipoGrupo = int.Parse(lblTipoGrupo.Text), DescripcionGrupo = chkGrupo.Text, }; if (item.FindControl("divSubGrupos").Visible) { grupo.SubGrupos = new List <HelperSubGurpoUsuario>(); Repeater rpt = (Repeater)item.FindControl("rptSubGrupos"); foreach (RepeaterItem repeaterItem in rpt.Items) { CheckBox chkSubGrupo = (CheckBox)repeaterItem.FindControl("chkSubGrupo"); if (chkSubGrupo.Checked) { Label lblIdSubGrupo = (Label)repeaterItem.FindControl("lblIdSubGpo"); grupo.SubGrupos.Add(new HelperSubGurpoUsuario { Id = int.Parse(lblIdSubGrupo.Text), Descripcion = chkSubGrupo.Text }); } } if (!grupo.SubGrupos.Any()) { throw new Exception("Seleccione un subGrupo"); } } if (rol.Grupos != null) { rol.Grupos.Add(grupo); } } if (rol.Grupos == null || rol.Grupos.Count <= 0) { throw new Exception("Seleccione un Grupo"); } tmplst.Add(rol); foreach (HelperAsignacionRol asignacionRol in tmplst) { if (lstFinal.Any(a => a.IdRol == asignacionRol.IdRol)) { lstFinal.Remove(lstFinal.Single(a => a.IdRol == asignacionRol.IdRol)); } } lstFinal.AddRange(tmplst); GruposSeleccionados = lstFinal; LimpiarSeleccion(); if (OnTerminarModal != null) { OnTerminarModal(); } } catch (Exception ex) { if (_lstError == null) { _lstError = new List <string>(); } _lstError.Add(ex.Message); AlertaGeneral = _lstError; } }