Ejemplo n.º 1
0
        private static string[] DSC_EnumerateSettableValues(COMPLEX_DSC_TYPE complex, LinkedList <string> nameList)
        {
            string name = nameList.First.Value;

            nameList.RemoveFirst();

            PROPERTY_DSC_TYPE[] props = complex.property;
            if (props != null)
            {
                foreach (PROPERTY_DSC_TYPE prop in props)
                {
                    if (prop == null)
                    {
                        continue;
                    }
                    if (prop.sysname == name)
                    {
                        return(DSC_EnumerateSettableValues(prop));
                    }
                }
            }

            COMPLEX_DSC_TYPE[] comps = complex.complex;
            if (comps != null)
            {
                foreach (COMPLEX_DSC_TYPE comp in comps)
                {
                    if (comp == null)
                    {
                        continue;
                    }
                    if (comp.sysname == name)
                    {
                        return(DSC_EnumerateSettableValues(comp, nameList));
                    }
                }
            }

            // can't find the property
            return(null);
        }
Ejemplo n.º 2
0
        private static COMPLEX_SET_TYPE DSC_ConvertToSettable(COMPLEX_DSC_TYPE complexD)
        {
            COMPLEX_SET_TYPE complexS = new COMPLEX_SET_TYPE();

            complexS.sysname = complexD.sysname;

            // inner Property
            PROPERTY_DSC_TYPE[] subprops = complexD.property;
            if (subprops == null)
            {
                complexS.property = null;
            }
            else
            {
                PROPERTY_SET_TYPE[] tmpProps = new PROPERTY_SET_TYPE[subprops.Length];
                for (int i = 0; i < subprops.Length; i++)
                {
                    tmpProps[i] = DSC_ConvertToSettable(subprops[i]);
                }
                complexS.property = tmpProps;
            }

            // inner Complex
            COMPLEX_DSC_TYPE[] subcomps = complexD.complex;
            if (subcomps == null)
            {
                complexS.complex = null;
            }
            else
            {
                COMPLEX_SET_TYPE[] tmpComps = new COMPLEX_SET_TYPE[subcomps.Length];
                for (int i = 0; i < subcomps.Length; i++)
                {
                    tmpComps[i] = DSC_ConvertToSettable(subcomps[i]);
                }
                complexS.complex = tmpComps;
            }

            return(complexS);
        }
Ejemplo n.º 3
0
        private static bool DSC_IsAllowableValue(COMPLEX_DSC_TYPE complex, LinkedList <string> nameList, string val)
        {
            string name = nameList.First.Value;

            nameList.RemoveFirst();

            PROPERTY_DSC_TYPE[] props = complex.property;
            if (props != null)
            {
                foreach (PROPERTY_DSC_TYPE prop in props)
                {
                    if (prop == null)
                    {
                        continue;
                    }
                    if (prop.sysname == name)
                    {
                        return(DSC_IsAllowableValue(prop, val));
                    }
                }
            }

            COMPLEX_DSC_TYPE[] comps = complex.complex;
            if (comps != null)
            {
                foreach (COMPLEX_DSC_TYPE comp in comps)
                {
                    if (comp == null)
                    {
                        continue;
                    }
                    if (comp.sysname == name)
                    {
                        return(DSC_IsAllowableValue(comp, nameList, val));
                    }
                }
            }

            return(false);
        }