// Indexer declaration public PrefetchPolicy this[IClass @class] { get { PrefetchPolicy prefetchPolicy; if (!this.prefetchPolicyByClass.TryGetValue(@class, out prefetchPolicy)) { var prefetchPolicyBuilder = new PrefetchPolicyBuilder(); foreach (var roleType in @class.RoleTypes) { prefetchPolicyBuilder.WithRule(roleType); } foreach (var associationType in @class.AssociationTypes) { prefetchPolicyBuilder.WithRule(associationType); } prefetchPolicy = prefetchPolicyBuilder.Build(); this.prefetchPolicyByClass[@class] = prefetchPolicy; } return prefetchPolicy; } }
public static void WithWorkspaceRules(this PrefetchPolicyBuilder @this, Class @class) { foreach (var roleType in @class.WorkspaceRoleTypes) { @this.WithRule(roleType); } }
public static void WithSecurityRules(this PrefetchPolicyBuilder @this, Class @class) { if (@class.DelegatedAccessRoleTypes != null) { var builder = new PrefetchPolicyBuilder() .WithRule(MetaObject.Instance.SecurityTokens, SecurityTokenPrefetchPolicy) .WithRule(MetaObject.Instance.DeniedPermissions) .Build(); var delegatedAccessRoleTypes = @class.DelegatedAccessRoleTypes; foreach (var delegatedAccessRoleType in delegatedAccessRoleTypes) { @this.WithRule(delegatedAccessRoleType, builder); } } @this.WithRule(MetaObject.Instance.SecurityTokens, SecurityTokenPrefetchPolicy); @this.WithRule(MetaObject.Instance.DeniedPermissions); }
public static void WithSecurityRules(this PrefetchPolicyBuilder @this) { @this.WithRule(MetaAccessControlledObject.Instance.SecurityTokens, SecuritTokenPrefetchPolicy); @this.WithRule(MetaAccessControlledObject.Instance.DeniedPermissions); }