Exemplo n.º 1
0
        // 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;
            }
        }
Exemplo n.º 2
0
 public static void WithWorkspaceRules(this PrefetchPolicyBuilder @this, Class @class)
 {
     foreach (var roleType in @class.WorkspaceRoleTypes)
     {
         @this.WithRule(roleType);
     }
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
 public static void WithSecurityRules(this PrefetchPolicyBuilder @this)
 {
     @this.WithRule(MetaAccessControlledObject.Instance.SecurityTokens, SecuritTokenPrefetchPolicy);
     @this.WithRule(MetaAccessControlledObject.Instance.DeniedPermissions);
 }