Esempio n. 1
0
 protected PolicyDrivenFeatureConnector(FeatureManager manager)
     : base(manager)
 {
     this._featureProviders = new Dictionary <ModelItem, List <PolicyDrivenFeatureConnector <TFeatureProviderType> .ProviderData> >();
     this._policyService    = this.Context.Services.GetService <ItemPolicyService>();
     if (this._policyService == null)
     {
         this._policyServer  = new ItemPolicyConnector(manager);
         this._policyService = this.Context.Services.GetService <ItemPolicyService>();
     }
     else
     {
         this._policyServer = ((ItemPolicyConnector.ItemPolicyServiceImpl) this._policyService).Server;
     }
     foreach (TFeatureProviderType featureProviderType in this.Manager.CreateFeatureProviders(typeof(TFeatureProviderType), (Predicate <Type>)(featureProviderType =>
     {
         this._policyServer.OnExtensionAvailable(featureProviderType);
         return(false);
     })))
     {
         ;
     }
     this._policyService.PolicyAdded += new EventHandler <PolicyAddedEventArgs>(this.OnPolicyAdded);
     foreach (ItemPolicy policy in this._policyService.Policies)
     {
         this.OnPolicyItemsChanged((object)this, new PolicyItemsChangedEventArgs(policy, policy.PolicyItems, (IEnumerable <ModelItem>)null));
         policy.PolicyItemsChanged += new EventHandler <PolicyItemsChangedEventArgs>(this.OnPolicyItemsChanged);
     }
 }
 protected override void Subscribe()
 {
     this._policyService = this._context.Services.GetService <ItemPolicyService>();
     if (this._policyService != null)
     {
         this._policyService.PolicyAdded += new EventHandler <PolicyAddedEventArgs>(this.OnPolicyAdded);
     }
     else
     {
         this._context.Services.Subscribe <ItemPolicyService>(new SubscribeServiceCallback <ItemPolicyService>(this.OnPolicyServiceAvailable));
     }
 }
        public override bool MeetsRequirement(EditingContext context)
        {
            if (context == null)
            {
                throw new ArgumentNullException("context");
            }
            ItemPolicyService service = context.Services.GetService <ItemPolicyService>();

            if (service == null)
            {
                return(false);
            }
            foreach (object obj in service.Policies)
            {
                if (obj.GetType() == this.ItemPolicyType)
                {
                    return(true);
                }
            }
            return(false);
        }
 private void OnPolicyServiceAvailable(ItemPolicyService policyService)
 {
     this._context.Services.Unsubscribe <ItemPolicyService>(new SubscribeServiceCallback <ItemPolicyService>(this.OnPolicyServiceAvailable));
     this._policyService              = policyService;
     this._policyService.PolicyAdded += new EventHandler <PolicyAddedEventArgs>(this.OnPolicyAdded);
 }