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(); } }