Example #1
0
        protected void btnPermisosUsuarioUpdate_Click(object sender, EventArgs e)
        {
            System.Text.StringBuilder sb         = new System.Text.StringBuilder();
            List <IFamPat>            PerQuitar  = new List <IFamPat>();
            List <IFamPat>            PerAgregar = new List <IFamPat>();

            //Verificar que quede al menos un permiso asignado
            if (LisAuxAsig.Count == 0)
            {
                sb.Append(@"<script type='text/javascript'>");
                //sb.Append("$('#currentdetail').modal('show');");
                sb.Append("alert('Por favor revisar que el usuario posea al menos un permiso asignado');");
                sb.Append(@"</script>");
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                        "ModifClickMsj1", sb.ToString(), false);
            }
            else
            {
                unEmpleado = (UsuarioEntidad)Session["Empleado"];
                PerQuitar  = LisAuxAsigBKP.Where(d => !LisAuxAsig.Any(a => a.NombreIFamPat == d.NombreIFamPat)).ToList();
                PerAgregar = LisAuxAsig.Where(d => !LisAuxAsigBKP.Any(a => a.NombreIFamPat == d.NombreIFamPat)).ToList();

                if (unManagerUsuario.UsuarioModificarPermisos(PerAgregar, PerQuitar, unEmpleado.NombreUsuario))
                {
                    LisAuxAsig    = unManagerUsuario.UsuarioTraerPermisos(unEmpleado.NombreUsuario, unEmpleado.CUIT);
                    LisAuxAsigBKP = LisAuxAsig.ToList();
                    TFI.SEGURIDAD.ServicioLog.CrearLog("Modificar Permisos Usuario", "Permisos modificados correctamente", usuarioentidad.NombreUsuario, CORE.Helpers.ConfigSection.Default.Site.Cuit.ToString());
                    treeAsignados.CollapseAll();
                    treeDisponibles.CollapseAll();
                    Current.Session["PermisosDisp"] = LisAuxDisp;
                    Current.Session["PermisosAsig"] = LisAuxAsig;
                }
            }


            //unEmpleado.Permisos.Clear();
            //unEmpleado.Permisos.Add(new Familia());
            //unEmpleado.Permisos[0].IdIFamPat = ddlPermisosUsuarioUpdate.SelectedIndex + 1;
            //unManagerUsuarioFamilia.UsuarioUpdatePermisosFamilia(unEmpleado);
            //cargarDatosEmpleado();
        }
        protected void btnEliminarFamilia_Click(object sender, EventArgs e)
        {
            UsuarioCore           ManagerUsuario              = new UsuarioCore();
            List <UsuarioEntidad> UsuariosComprometidos       = new List <UsuarioEntidad>();
            List <UsuarioEntidad> UsuariosConFamiliaAEliminar = new List <UsuarioEntidad>();
            List <IFamPat>        PerAgregar = new List <IFamPat>();
            List <IFamPat>        PerQuitar  = new List <IFamPat>();

            System.Text.StringBuilder sb = new System.Text.StringBuilder();

            try
            {
                if (Int32.Parse(cboFamilia.SelectedValue) > 0)
                {
                    if (cboFamilia.SelectedItem.Text == "Cliente" | cboFamilia.SelectedItem.Text == "Empleado" | cboFamilia.SelectedItem.Text == "Admin")
                    {
                        sb.Append(@"<script type='text/javascript'>");
                        //sb.Append("$('#currentdetail').modal('show');");
                        sb.Append("alert('No pueden eliminarse las familias por defecto Cliente, Empleado o Admin');");
                        sb.Append(@"</script>");
                        ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                                "EliminarDefecto", sb.ToString(), false);
                    }
                    else
                    {
                        UsuariosConFamiliaAEliminar = ManagerFamilia.FamiliaUsuariosAsociados(Int32.Parse(cboFamilia.SelectedValue));
                        UsuariosComprometidos       = ManagerFamilia.FamiliaUsuariosComprometidos(Int32.Parse(cboFamilia.SelectedValue));
                        if (UsuariosComprometidos.Count > 0)
                        {
                            List <string> LisUs = new List <string>();
                            foreach (UsuarioEntidad unUs in UsuariosComprometidos)
                            {
                                LisUs.Add(unUs.NombreUsuario);
                            }
                            string UsuariosCompString = string.Join(Environment.NewLine, LisUs);

                            // Agregar msj de que no se puede eliminar la Familia porque los usuarios "UsuariosCompString", la tienen asignada como único permiso
                            sb.Append(@"<script type='text/javascript'>");
                            //sb.Append("$('#currentdetail').modal('show');");
                            sb.Append("alert('No se puede eliminar la familia porque los siguientes usuarios la poseen asignada como único permiso: ");
                            sb.Append(UsuariosCompString + "');");
                            sb.Append(@"</script>");
                            ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                                    "EliminarClickMsj2", sb.ToString(), false);
                        }
                        else
                        {
                            PerQuitar.Add(PermisosCbo.Where(X => X.IdIFamPat == Int32.Parse(cboFamilia.SelectedValue)).First());

                            //Modifico los permisos de los usuarios que no están comprometidos
                            PerAgregar.Clear(); //Limpio para que no agregue permisos a los usuarios no comprometidos
                            foreach (UsuarioEntidad unUs in UsuariosConFamiliaAEliminar.Where(x => !UsuariosComprometidos.Any(y => y.IdUsuario == x.IdUsuario)).ToList())
                            {
                                ManagerUsuario.UsuarioModificarPermisos(PerAgregar, PerQuitar, unUs.NombreUsuario);
                            }

                            if (ManagerFamilia.FamiliaEliminar(Int32.Parse(cboFamilia.SelectedValue)))
                            {
                                //Resguardo el nombre de la familia eliminada para el log
                                string FamiliaLog = cboFamilia.Text;

                                PermisosTodos = ManagerFamilia.PermisosTraerTodos();
                                PermisosCbo   = PermisosTodos.Where(X => X.CantHijos > 0).ToList();
                                txtName.Text  = "";
                                Familia FamAux = new Familia();
                                FamAux.IdIFamPat     = -1;
                                FamAux.NombreIFamPat = "";
                                PermisosCbo.Insert(0, FamAux);
                                cboFamilia.Items.Clear();
                                cboFamilia.DataSource     = null;
                                cboFamilia.DataSource     = PermisosCbo;
                                cboFamilia.DataTextField  = "NombreIFamPat";
                                cboFamilia.DataValueField = "IdIFamPat";
                                cboFamilia.DataBind();

                                LisAuxDisp    = PermisosTodos.ToList();
                                LisAuxAsig    = new List <IFamPat>();
                                LisAuxAsigBKP = new List <IFamPat>();
                                ListarPermisos(PermisosTodos, treeTodos);
                                ListarPermisos(LisAuxDisp, treeDisponibles);
                                ListarPermisos(LisAuxAsig, treeAsignados);
                                TFI.SEGURIDAD.ServicioLog.CrearLog("Eliminar Familia", "Familia " + FamiliaLog + " eliminada correctamente", usuarioentidad.NombreUsuario, CORE.Helpers.ConfigSection.Default.Site.Cuit.ToString());
                                treeAsignados.CollapseAll();
                                treeDisponibles.CollapseAll();
                                treeTodos.CollapseAll();
                                sb.Append(@"<script type='text/javascript'>");
                                //sb.Append("$('#currentdetail').modal('show');");
                                sb.Append("alert('Familia eliminada correctamente');");
                                sb.Append(@"</script>");
                                ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                                        "EliminarOK", sb.ToString(), false);
                            }
                        }
                    }
                }
                else
                {
                    sb.Append(@"<script type='text/javascript'>");
                    //sb.Append("$('#currentdetail').modal('show');");
                    sb.Append("alert('Debe seleccionar una Familia para eliminarla');");
                    sb.Append(@"</script>");
                    ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                                                            "EliminarSeleccionar", sb.ToString(), false);
                }
            }
            catch (Exception es)
            {
                ServicioLog.CrearLog(es, "GestionPermisos - Eliminar Familia", usuarioentidad.NombreUsuario, CORE.Helpers.ConfigSection.Default.Site.Cuit.ToString());
                Response.Redirect("../../../Shared/Errores.aspx");
            }
        }