public void SetPolicies(PolicyContainer pset) { if (pset == null) { store.Clear(); HasPolicies = false; return; } var content = new Dictionary <string, List <string> > (); foreach (var p in pset.DirectGetAll()) { string name = PolicyService.GetPolicyTypeDescription(p.PolicyType); List <string> scopes; if (!content.TryGetValue(name, out scopes)) { scopes = content [name] = new List <string> (); } scopes.Add(p.Scope ?? ""); } var sorted = content.ToList(); sorted.Sort((x, y) => x.Key.CompareTo(y.Key)); store.Clear(); var sb = new StringBuilder(); foreach (var pol in sorted) { sb.Append(pol.Key); if (pol.Value.Count != 1 || pol.Value[0].Length != 0) { sb.Append(" ("); bool first = true; if (pol.Value.Remove("")) { sb.Append(GettextCatalog.GetString("default settings")); first = false; } foreach (var s in pol.Value) { if (!first) { sb.Append(", "); } sb.Append(s); first = false; } sb.Append(")"); } store.AppendValues(sb.ToString()); sb.Length = 0; } HasPolicies = sorted.Count > 0; }
public static string GetPoliciesDescription(PolicyContainer pset) { Dictionary <string, List <string> > content = new Dictionary <string, List <string> > (); foreach (var p in pset.DirectGetAll()) { string name = PolicyService.GetPolicyTypeDescription(p.PolicyType); List <string> scopes; if (!content.TryGetValue(name, out scopes)) { scopes = content [name] = new List <string> (); } scopes.Add(p.Scope ?? ""); } var sorted = content.ToList(); sorted.Sort((x, y) => x.Key.CompareTo(y.Key)); StringBuilder sb = StringBuilderCache.Allocate(); foreach (var pol in sorted) { if (sb.Length > 0) { sb.Append('\n'); } sb.Append(pol.Key); if (pol.Value.Count != 1 || pol.Value[0].Length != 0) { sb.Append(" ("); bool first = true; if (pol.Value.Remove("")) { sb.Append(GettextCatalog.GetString("default settings")); first = false; } foreach (var s in pol.Value) { if (!first) { sb.Append(", "); } sb.Append(s); first = false; } sb.Append(")"); } } return(StringBuilderCache.ReturnAndFree(sb)); }
public void SetPolicies (PolicyContainer pset) { if (pset == null) { store.Clear (); HasPolicies = false; return; } var content = new Dictionary<string, List<string>> (); foreach (var p in pset.DirectGetAll ()) { string name = PolicyService.GetPolicyTypeDescription (p.PolicyType); List<string> scopes; if (!content.TryGetValue (name, out scopes)) scopes = content [name] = new List<string> (); scopes.Add (p.Scope ?? ""); } var sorted = content.ToList (); sorted.Sort ((x, y) => x.Key.CompareTo(y.Key)); store.Clear (); var sb = new StringBuilder (); foreach (var pol in sorted) { sb.Append (pol.Key); if (pol.Value.Count != 1 || pol.Value[0].Length != 0) { sb.Append (" ("); bool first = true; if (pol.Value.Remove ("")) { sb.Append (GettextCatalog.GetString ("default settings")); first = false; } foreach (var s in pol.Value) { if (!first) sb.Append (", "); sb.Append (s); first = false; } sb.Append (")"); } store.AppendValues (sb.ToString ()); sb.Length = 0; } HasPolicies = sorted.Count > 0; }