public settingsMemberInfoGroupDictionary GetSubDictionary(IEnumerable <String> groups) { settingsMemberInfoGroupDictionary output = new settingsMemberInfoGroupDictionary(); foreach (String g in groups) { if (ContainsKey(g)) { output.Add(g, this[g]); } } return(output); }
/// <summary> /// Builds member info group dictionary /// </summary> /// <param name="objectInfo">The object information.</param> /// <returns></returns> public static settingsMemberInfoGroupDictionary GetMemberInfoGroupDictionary(this settingsEntriesForObject objectInfo) { List <String> groups = new List <string>(); settingsMemberInfoGroupDictionary output = new settingsMemberInfoGroupDictionary(); if (objectInfo.CategoryByPriority.Any()) { groups = objectInfo.CategoryByPriority; } else { foreach (var pp in objectInfo.spes) { if (!groups.Contains(pp.Value.categoryName)) { groups.Add(pp.Value.categoryName); } } } foreach (String g in groups) { output.Add(g, new settingsMemberInfoGroup(g)); } foreach (var pp in objectInfo.spes) { if (!pp.Value.categoryName.isNullOrEmpty()) { if (groups.Contains(pp.Value.categoryName)) { output[pp.Value.categoryName].Add(pp.Value); } } } return(output); }