// metadata /*private static IDictionary<string, IDictionary<string, string>> ToModel(this IEnumerable<Metadata> source, string tier) * { * if (!source.Any()) * return new Dictionary<string, IDictionary<string, string>>(); * * IDictionary<string, string> values = source.ToDictionary(m => m.Key, m => m.Value); * IDictionary<string, IDictionary<string, string>> set = new Dictionary<string, IDictionary<string, string>> * { * { tier, values } * }; * return set; * }*/ // privileges private static IDictionary <string, IDictionary <string, IEnumerable <ACLModel> > > ToModel(this IEnumerable <Privilege> source, string tier, string destinationTier) { if (!source.Any()) { return(new Dictionary <string, IDictionary <string, IEnumerable <ACLModel> > >()); } var values = new Dictionary <string, IEnumerable <ACLModel> >(); foreach (var privilege in source.Where(s => s.Tier == tier)) { var right = values.ContainsKey(privilege.Type) ? values[privilege.Type].ToList() : new List <ACLModel>(); values[privilege.Type] = right; var acl = right.FirstOrDefault(a => a.OverrideKey == privilege.OverrideKey); if (acl == null) { right.Add(acl = new ACLModel { OverrideKey = privilege.OverrideKey }); } var identifiers = acl.RequiredIdentifiers?.ToList() ?? new List <string>(); identifiers.Add(privilege.Identifier); acl.RequiredIdentifiers = identifiers; } IDictionary <string, IDictionary <string, IEnumerable <ACLModel> > > set = new Dictionary <string, IDictionary <string, IEnumerable <ACLModel> > > { { destinationTier, values } }; return(set); }
public ACLModel GetACLModel() { return(ACLModel.Create(_roleService.GetAllRoles(), GetAllSystemRules())); }