Пример #1
0
        private List <csSubModulo> AccesoMayor(List <Generales_Accesos> generales_accesos, int posAccesos, List <csSubModulo> SubsModulos, out int posGeneralesAccesos)
        {
            csSubModuloHandler SubModuloHandler = new csSubModuloHandler();
            List <csSubModulo> SubModulos       = SubsModulos;

            posGeneralesAccesos = 0;

            for (int x = posAccesos; x < generales_accesos.Count; x++)
            {
                int pos = x + 1 >= generales_accesos.Count ? x : x + 1;
                if (generales_accesos[pos].orden.Trim().Length > generales_accesos[x].orden.Trim().Length)
                {
                    SubModulos.Add(SubModuloHandler.AddSubModulos(generales_accesos[x]));
                    int ultimoSubModulo = SubModulos.Count - 1;
                    SubModulos[ultimoSubModulo].SubModulos = (this.AccesoMayor(generales_accesos, pos, SubModulos[ultimoSubModulo].SubModulos, out posGeneralesAccesos));
                    x = posGeneralesAccesos;
                    break;
                }
                else if (generales_accesos[pos].orden.Trim().Length < generales_accesos[x].orden.Trim().Length)
                {
                    SubModulos.Add(SubModuloHandler.AddSubModulos(generales_accesos[x]));
                    posGeneralesAccesos = x;
                    break;
                }
                else
                {
                    SubModulos.Add(SubModuloHandler.AddSubModulos(generales_accesos[x]));
                    posGeneralesAccesos = x;
                }
            }

            return(SubModulos);
        }
Пример #2
0
        public List <csModulo> CreateAccesos()
        {
            db_sporting_gymContainer contexto          = new db_sporting_gymContainer();
            List <Generales_Accesos> generales_accesos = contexto.Generales_Accesos.Select(a => a).OrderBy(a => a.orden).ToList();

            csSubModuloHandler SubModuloHandler = new csSubModuloHandler();
            csModulo           tempModulo       = new csModulo();
            List <csModulo>    Modulos          = new List <csModulo>();

            int posGeneralesAccesos   = 0;
            int LengthSistema         = 0;
            int countGeneralesAccesos = generales_accesos.Count;

            for (int x = 0; x < countGeneralesAccesos; x++)
            {
                int strNodoLength = generales_accesos[x].orden.Trim().Length;

                if (generales_accesos[x].padre == 1)
                {
                    if (tempModulo.subModulos.Count > 0)
                    {
                        Modulos.Add(tempModulo);
                        tempModulo = new csModulo();
                    }

                    tempModulo.id_General_Acceso = generales_accesos[x].id_acceso;
                    tempModulo.nombre_Acceso     = generales_accesos[x].nombre_acceso.Trim();
                    tempModulo.nombre_Form       = generales_accesos[x].nombre_form.Trim();

                    LengthSistema = strNodoLength;
                }
                else if (strNodoLength > LengthSistema)
                {
                    tempModulo.subModulos = this.AccesoMayor(generales_accesos, x, tempModulo.subModulos, out posGeneralesAccesos);
                    x = posGeneralesAccesos;

                    LengthSistema = strNodoLength;
                }
                else if (strNodoLength == LengthSistema)
                {
                    tempModulo.subModulos = this.AccesoMayor(generales_accesos, x, tempModulo.subModulos, out posGeneralesAccesos);
                    x             = posGeneralesAccesos;
                    LengthSistema = strNodoLength;
                }
                //else if (strNodoLength < LengthSistema)
                //{
                //    if (generales_accesos[x].padre == 1)
                //        x--;
                //    else
                //        tempModulo.subModulos.Add(SubModuloHandler.AddSubModulos(generales_accesos[x]));

                //    LengthSistema = strNodoLength;
                //}
            }

            if (tempModulo.subModulos.Count > 0)
            {
                Modulos.Add(tempModulo);
            }

            return(Modulos);
        }