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); }