示例#1
0
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public List <GrupoPermiso> ObtenerGrupoPermiso()
        {
            List <GrupoPermiso> listGrupoPermiso = new List <GrupoPermiso>();

            using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MotoPoint"].ConnectionString))
            {
                using (SqlCommand cmdSelect = new SqlCommand("SELECT * FROM tbl_GrupoPermisos", con))
                {
                    try
                    {
                        con.Open();
                        using (var reader = cmdSelect.ExecuteReader())
                        {
                            while (reader.Read())
                            {
                                GrupoPermiso oGrupoPermiso = new GrupoPermiso();
                                oGrupoPermiso.IdGrupo   = Convert.ToInt32(reader["IdGrupo"]);
                                oGrupoPermiso.IdPermiso = Convert.ToInt32(reader["idPermisos"]);
                                listGrupoPermiso.Add(oGrupoPermiso);
                            }
                        }
                        con.Close();
                    }
                    catch (Exception ex)
                    {
                        con.Close();
                        throw new EXCEPCIONES.DALExcepcion(ex.Message);
                    }
                }
                return(listGrupoPermiso);
            }
        }
示例#2
0
        public ActionResult Eliminar(int txtIdGrupo)
        {
            using (var bd = new BDDemoLoginEntities())
            {
                using (var transaccion = new System.Transactions.TransactionScope())
                {
                    Grupo oGrupo = bd.Grupo.Where(p => p.IDGRUPO == txtIdGrupo).First();
                    oGrupo.HABILITADO = 0;

                    // borra permisos existentes
                    int cantPermisos = bd.GrupoPermiso.Where(p => p.IDGRUPO == txtIdGrupo).Count();

                    for (int i = 0; i < cantPermisos; i++)
                    {
                        GrupoPermiso oGrupoPermiso = bd.GrupoPermiso.Where(p => p.IDGRUPO == txtIdGrupo).First();
                        oGrupoPermiso.HABILITADO = 0;
                    }
                    bd.SaveChanges();
                    transaccion.Complete();
                }
            }
            return(RedirectToAction("Index"));
        }
示例#3
0
        public ActionResult Agregar(GrupoCLS oGrupoCLS, FormCollection form)
        {
            string[] permisosSeleccionados = null;
            if (form["permisos"] != null)
            {
                permisosSeleccionados = form["permisos"].Split(',');
            }

            int numPermisosSeleccionados = 0;

            if (permisosSeleccionados != null)
            {
                numPermisosSeleccionados = permisosSeleccionados.Count();
            }

            //try
            //{
            int numRegistrosEncontrados = 0;

            using (var bd = new BDDemoLoginEntities())
            {
                numRegistrosEncontrados = bd.Grupo.Where(p => p.NOMBREGRUPO == oGrupoCLS.nombreGrupo).Count();
            }
            if (!ModelState.IsValid || numRegistrosEncontrados >= 1 || numPermisosSeleccionados < 1)
            {
                if (numRegistrosEncontrados >= 1)
                {
                    oGrupoCLS.mensajeErrorNombre = "El nombre de grupo ya existe ";
                }
                if (numPermisosSeleccionados < 1)
                {
                    oGrupoCLS.mensajeErrorPermiso = "Debe Seleccionar por lo menos un permiso";
                }
                listarPermiso();
                return(View(oGrupoCLS));
            }
            else
            {
                using (var bd = new BDDemoLoginEntities())
                {
                    using (var transaccion = new System.Transactions.TransactionScope()) {
                        Grupo oGrupo = new Grupo();
                        oGrupo.NOMBREGRUPO = oGrupoCLS.nombreGrupo;
                        oGrupo.HABILITADO  = 1;
                        bd.Grupo.Add(oGrupo);

                        for (int i = 0; i < numPermisosSeleccionados; i++)
                        {
                            GrupoPermiso oGrupoPermiso = new GrupoPermiso();
                            oGrupoPermiso.IDGRUPO    = oGrupoCLS.idGrupo;
                            oGrupoPermiso.IDPERMISO  = int.Parse(permisosSeleccionados[i]);
                            oGrupoPermiso.HABILITADO = 1;
                            bd.GrupoPermiso.Add(oGrupoPermiso);
                        }
                        bd.SaveChanges();
                        transaccion.Complete();
                    }
                }
            }
            //}
            //catch(Exception ex)
            //{

            //}
            return(RedirectToAction("Index"));
        }
示例#4
0
        public List <PermisoComponente> ObtenerPermisos()
        {
            try
            {
                var    lstPermisos = new List <PermisoComponente>();
                string query       = "";


                query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo  
					                     from PermisoPermiso SP2
                                         where sp2.IdPadre is null 
                                         UNION ALL 
                                         select sp.IdPadre, sp.IdHijo 
					                     from PermisoPermiso sp 
                                         inner join Recursivo r on r.IdHijo = sp.IdPadre
                                         )
                                         select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso
                                         from recursivo r 
                                         inner join Permiso p on (r.IdHijo = p.Id)                      
                    ";

                var dtPermisos = _accesoBaseDeDatos.Seleccionar(query, null);

                if (dtPermisos.Rows.Count == 0)
                {
                    return(null);
                }

                foreach (DataRow row in dtPermisos.Rows)
                {
                    int idPadre = 0;

                    if (row["IdPadre"] != DBNull.Value)
                    {
                        idPadre = Convert.ToInt32(row["IdPadre"]);
                    }

                    var id          = Convert.ToInt32(row["Id"]);
                    var descripcion = row["Descripcion"].ToString().Trim();
                    var esPermiso   = Convert.ToBoolean(row["EsPermiso"].ToString().Trim());

                    PermisoComponente componente;

                    if (!esPermiso)
                    {
                        componente = new GrupoPermiso();
                    }
                    else
                    {
                        componente = new BE.Composite.Permiso();
                    }

                    componente.Id          = id;
                    componente.Descripcion = descripcion;

                    var padre = ObtenerComponente(idPadre, lstPermisos);

                    if (padre == null)
                    {
                        lstPermisos.Add(componente);
                    }
                    else
                    {
                        padre.Agregar(componente);
                    }
                }

                return(lstPermisos);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }
示例#5
0
        //private List<PermisoComponente> ObtenerPermisos(string idPermiso)
        //{
        //    try
        //    {
        //        var lstPermisos = new List<PermisoComponente>();
        //        var pars = new IDbDataParameter[1];
        //        string query = "";

        //        if (!String.IsNullOrEmpty(idPermiso))
        //        {
        //            var where = idPermiso;
        //            pars[0] = _accesoBaseDeDatos.CrearParametro("@Condicion", Convert.ToInt32(where));

        //            //query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo
        //            //          from PermisoPermiso SP2
        //            //                         where sp2.IdPadre = @Condicion
        //            //                         UNION ALL
        //            //                         select sp.IdPadre, sp.IdHijo
        //            //          from PermisoPermiso sp
        //            //                         inner join Recursivo r on r.IdHijo = sp.IdPadre
        //            //                         )
        //            //                         select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso
        //            //                         from recursivo r
        //            //                         inner join Permiso p on (r.IdHijo = p.Id)
        //            //    ";


        //            query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo
        //                      from PermisoPermiso SP2
        //                                     where sp2.IdPadre = @Condicion
        //                                     UNION ALL
        //                                     select sp.IdPadre, sp.IdHijo
        //                                     from PermisoPermiso sp
        //                                     inner join Recursivo r on r.IdHijo = sp.IdPadre
        //                                     )
        //                                     select perper.IdPadre, perper.IdHijo, p.Id, p.Descripcion, p.EsPermiso
        //                                     from PermisoPermiso perper
        //                                     inner join Permiso p on (perper.IdHijo = p.Id)
        //			 where p.Id = @Condicion
        //                                     union all
        //                                     select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso
        //                                     from recursivo r
        //                                     inner join Permiso p on (r.IdHijo = p.Id)


        //                ";
        //        }
        //        else
        //        {
        //            pars = null;

        //            query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo
        //                      from PermisoPermiso SP2
        //                                     where sp2.IdPadre is null
        //                                     UNION ALL
        //                                     select sp.IdPadre, sp.IdHijo
        //                      from PermisoPermiso sp
        //                                     inner join Recursivo r on r.IdHijo = sp.IdPadre
        //                                     )
        //                                     select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso
        //                                     from recursivo r
        //                                     inner join Permiso p on (r.IdHijo = p.Id)
        //                ";
        //        }

        //        var dtPermisos = _accesoBaseDeDatos.Seleccionar(query, pars);

        //        if (dtPermisos.Rows.Count == 0)
        //            return null;

        //        foreach (DataRow row in dtPermisos.Rows)
        //        {
        //            int idPadre = 0;

        //            if (row["IdPadre"] != DBNull.Value)
        //            {
        //                idPadre = Convert.ToInt32(row["IdPadre"]);
        //            }

        //            var id = Convert.ToInt32(row["Id"]);
        //            var descripcion = row["Descripcion"].ToString().Trim();
        //            var esPermiso = Convert.ToBoolean(row["EsPermiso"].ToString().Trim());

        //            PermisoComponente componente;

        //            if (!esPermiso)
        //                componente = new GrupoPermiso();
        //            else
        //                componente = new BE.Composite.Permiso();

        //            componente.Id = id;
        //            componente.Descripcion = descripcion;

        //            var padre = ObtenerComponente(idPadre, lstPermisos);

        //            if (padre == null)
        //            {
        //                lstPermisos.Add(componente);
        //            }
        //            else
        //            {
        //                padre.Agregar(componente);
        //            }

        //        }

        //        return lstPermisos;

        //    }
        //    catch (Exception e)
        //    {
        //        Console.WriteLine(e);
        //        throw;
        //    }

        //}

        private PermisoComponente ObtenerPermisos(string idPermiso)
        {
            try
            {
                var lstPermisos = new List <PermisoComponente>();

                var    pars  = new IDbDataParameter[1];
                string query = "";

                if (!String.IsNullOrEmpty(idPermiso))
                {
                    var where = idPermiso;
                    pars[0]   = _accesoBaseDeDatos.CrearParametro("@Condicion", Convert.ToInt32(where));

                    //query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo
                    //          from PermisoPermiso SP2
                    //                         where sp2.IdPadre = @Condicion
                    //                         UNION ALL
                    //                         select sp.IdPadre, sp.IdHijo
                    //          from PermisoPermiso sp
                    //                         inner join Recursivo r on r.IdHijo = sp.IdPadre
                    //                         )
                    //                         select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso
                    //                         from recursivo r
                    //                         inner join Permiso p on (r.IdHijo = p.Id)
                    //    ";


                    query = $@"with Recursivo as ( select sp2.IdPadre, sp2.IdHijo  
                              from PermisoPermiso SP2
                                             where sp2.IdPadre = @Condicion 
                                             UNION ALL 
                                             select sp.IdPadre, sp.IdHijo 
                                             from PermisoPermiso sp 
                                             inner join Recursivo r on r.IdHijo = sp.IdPadre
                                             )
                                             select perper.IdPadre, perper.IdHijo, p.Id, p.Descripcion, p.EsPermiso
                                             from PermisoPermiso perper
                                            right join Permiso p on (perper.IdHijo = p.Id)          
											 where p.Id = @Condicion 
                                             union all
                                             select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso
                                             from recursivo r 
                                             inner join Permiso p on (r.IdHijo = p.Id)
                                          
                                      
                        ";
                }
                else
                {
                    pars = null;

                    query = $@"	with Recursivo as ( select sp2.IdPadre, sp2.IdHijo  
					                         from PermisoPermiso SP2
                                             where sp2.IdPadre is null 
                                             UNION ALL 
                                             select sp.IdPadre, sp.IdHijo 
					                         from PermisoPermiso sp 
                                             inner join Recursivo r on r.IdHijo = sp.IdPadre
                                             )
                                             select r.IdPadre, r.IdHijo, p.Id, p.Descripcion, p.EsPermiso
                                             from recursivo r 
                                             right join Permiso p on (r.IdHijo = p.Id)                      
                        ";
                }

                var dtPermisos = _accesoBaseDeDatos.Seleccionar(query, pars);

                if (dtPermisos.Rows.Count == 0)
                {
                    return(null);
                }

                foreach (DataRow row in dtPermisos.Rows)
                {
                    int idPadre = 0;

                    if (row["IdPadre"] != DBNull.Value)
                    {
                        idPadre = Convert.ToInt32(row["IdPadre"]);
                    }

                    var id          = Convert.ToInt32(row["Id"]);
                    var descripcion = row["Descripcion"].ToString().Trim();
                    var esPermiso   = Convert.ToBoolean(row["EsPermiso"].ToString().Trim());

                    PermisoComponente componente;

                    if (!esPermiso)
                    {
                        componente = new GrupoPermiso();
                    }
                    else
                    {
                        componente = new BE.Composite.Permiso();
                    }

                    componente.Id          = id;
                    componente.Descripcion = descripcion;

                    var padre = ObtenerComponente(idPadre, lstPermisos);

                    if (padre == null)
                    {
                        lstPermisos.Add(componente);
                    }
                    else
                    {
                        padre.Agregar(componente);
                    }
                }

                return(lstPermisos[0]);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }