public PrereqAnalysis(IDataProviderFactory dataSourceProvider, PrereqAnalysisMemberBuilder memberBuilder, PrereqConclusionSetBuilder conclusionSetBuilder, SetupMode setupModes, SetupRole setupRoles, GlobalParameters prereqAnalysisParameters, AnalysisThreading threadMode) : base(dataSourceProvider, memberBuilder, conclusionSetBuilder, (Microsoft.Exchange.Management.Deployment.Analysis.AnalysisMember x) => (!x.Features.HasFeature <ModeFeature>() || x.Features.GetFeature <ModeFeature>().Contains(setupModes)) && (!x.Features.HasFeature <RoleFeature>() || x.Features.GetFeature <RoleFeature>().Contains(setupRoles)), (Microsoft.Exchange.Management.Deployment.Analysis.AnalysisMember x) => (!x.Features.HasFeature <ModeFeature>() || x.Features.GetFeature <ModeFeature>().Contains(setupModes)) && (!x.Features.HasFeature <RoleFeature>() || x.Features.GetFeature <RoleFeature>().Contains(setupRoles)), threadMode) { this.setupModes = setupModes; this.setupRoles = setupRoles; this.prereqAnalysisParameters = prereqAnalysisParameters; this.BuildPrereqSettings(); this.BuildPrereqRules(); }
protected AnalysisImplementation(TDataSourceProvider dataSourceProvider, TMemberBuilder memberBuilder, TConclusionSetBuilder conclusionSetBuilder, Func <AnalysisMember, bool> immediateEvaluationFilter, Func <AnalysisMember, bool> conclusionsFilter, AnalysisThreading threadMode) : base(immediateEvaluationFilter, conclusionsFilter, threadMode) { if (dataSourceProvider == null) { throw new ArgumentNullException("dataSourceProvider"); } if (memberBuilder == null) { throw new ArgumentNullException("memberBuilder"); } if (conclusionSetBuilder == null) { throw new ArgumentNullException("conclusionSetBuilder"); } this.dataSourceProvider = dataSourceProvider; this.memberBuilder = memberBuilder; this.memberBuilder.SetAnalysis(this); this.conclusionSetBuilder = conclusionSetBuilder; this.conclusionSet = default(TConclusionSet); this.conclusionSetLock = new object(); }
protected Analysis(Func <AnalysisMember, bool> immediateEvaluationFilter, Func <AnalysisMember, bool> conclusionsFilter, AnalysisThreading threadMode) { if (immediateEvaluationFilter == null) { throw new ArgumentNullException("immediateEvaluationFilter"); } if (conclusionsFilter == null) { throw new ArgumentNullException("conclusionsFilter"); } this.immediateEvaluationFilter = immediateEvaluationFilter; this.conclusionsFilter = conclusionsFilter; this.currentState = new Optimistic <Analysis.AnalysisState>(new Analysis.AnalysisState(this), new Resolver <Analysis.AnalysisState>(Analysis.AnalysisState.Resolve)); this.currentProgress = new Optimistic <AnalysisProgress>(new AnalysisProgress(0, 0), new Resolver <AnalysisProgress>(AnalysisProgress.Resolve)); this.threadMode = threadMode; this.rootAnalysisMember = new RootAnalysisMember(this); this.completedManualResetEvent = new ManualResetEvent(false); this.startAnalysisLock = new object(); }