Exemple #1
0
        internal override void PerformAction()
        {
            ExtensionAndGroupMenuManager.GetSelectionPolFunPar(cc, out List <CountryConfig.PolicyRow> polRows, out List <CountryConfig.FunctionRow> funRows, out List <CountryConfig.ParameterRow> parRows);
            CountryConfig countryConfig = CountryAdministrator.GetCountryConfigFacade(cc).GetCountryConfig();

            CountryConfig.LookGroupRow groupRow = (from lg in countryConfig.LookGroup where lg.Name.ToLower() == groupName.ToLower() select lg).First();

            foreach (CountryConfig.PolicyRow policyRow in polRows)
            {
                if (!(from pg in countryConfig.LookGroup_Policy where pg.PolicyID == policyRow.ID && pg.LookGroupID == groupRow.ID select pg).Any())
                {
                    countryConfig.LookGroup_Policy.AddLookGroup_PolicyRow(groupRow, policyRow); // make sure to not add twice (and thus crash)
                }
            }
            foreach (CountryConfig.FunctionRow functionRow in funRows)
            {
                if (!(from fg in countryConfig.LookGroup_Function where fg.FunctionID == functionRow.ID && fg.LookGroupID == groupRow.ID select fg).Any())
                {
                    countryConfig.LookGroup_Function.AddLookGroup_FunctionRow(groupRow, functionRow);
                }
            }
            foreach (CountryConfig.ParameterRow parameterRow in parRows)
            {
                if (!(from pg in countryConfig.LookGroup_Parameter where pg.ParameterID == parameterRow.ID && pg.LookGroupID == groupRow.ID select pg).Any())
                {
                    countryConfig.LookGroup_Parameter.AddLookGroup_ParameterRow(groupRow, parameterRow);
                }
            }
        }
 internal ExtensionOrGroup(CountryConfig.LookGroupRow lookGroupRow)
 {
     id        = lookGroupRow.ID;
     name      = lookGroupRow.Name;
     shortName = lookGroupRow.ShortName;
     look      = new LookDef(lookGroupRow.Look);
 }
        internal override void PerformAction()
        {
            ExtensionAndGroupMenuManager.GetSelectionPolFunPar(cc, out List <CountryConfig.PolicyRow> polRows, out List <CountryConfig.FunctionRow> funRows, out List <CountryConfig.ParameterRow> parRows);
            CountryConfig countryConfig = CountryAdministrator.GetCountryConfigFacade(cc).GetCountryConfig();

            CountryConfig.LookGroupRow groupRow = (from lg in countryConfig.LookGroup where lg.Name.ToLower() == groupName.ToLower() select lg).First();

            List <CountryConfig.LookGroup_PolicyRow>    delPolicyRows    = new List <CountryConfig.LookGroup_PolicyRow>();
            List <CountryConfig.LookGroup_FunctionRow>  delFunctionRows  = new List <CountryConfig.LookGroup_FunctionRow>();
            List <CountryConfig.LookGroup_ParameterRow> delParameterRows = new List <CountryConfig.LookGroup_ParameterRow>();

            foreach (CountryConfig.PolicyRow policyRow in polRows)
            {
                funRows.AddRange(policyRow.GetFunctionRows()); // to make sure that all functions of the policy are removed as well - note: the AddContent-function
                                                               // does not remove a single function if its parent-policy is added (later)
                var del = from pg in countryConfig.LookGroup_Policy where pg.LookGroupID == groupRow.ID && pg.PolicyID == policyRow.ID select pg;
                if (del.Any() && !delPolicyRows.Contains(del.First()))
                {
                    delPolicyRows.Add(del.First());
                }
            }
            foreach (CountryConfig.FunctionRow functionRow in funRows)
            {
                parRows.AddRange(functionRow.GetParameterRows()); // see above
                var del = from fg in countryConfig.LookGroup_Function where fg.LookGroupID == groupRow.ID && fg.FunctionID == functionRow.ID select fg;
                if (del.Any() && !delFunctionRows.Contains(del.First()))
                {
                    delFunctionRows.Add(del.First());
                }
            }
            foreach (CountryConfig.ParameterRow parameterRow in parRows)
            {
                var del = from pg in countryConfig.LookGroup_Parameter where pg.LookGroupID == groupRow.ID && pg.ParameterID == parameterRow.ID select pg;
                if (del.Any() && !delParameterRows.Contains(del.First()))
                {
                    delParameterRows.Add(del.First());
                }
            }

            for (int i = delPolicyRows.Count - 1; i >= 0; --i)
            {
                delPolicyRows[i].Delete();
            }
            for (int i = delFunctionRows.Count - 1; i >= 0; --i)
            {
                delFunctionRows[i].Delete();
            }
            for (int i = delParameterRows.Count - 1; i >= 0; --i)
            {
                delParameterRows[i].Delete();
            }
        }