/// <summary> /// Static failure resolution constructor. /// </summary> public YodiiEngineResult(IConfigurationSolver solver, List <PluginData> blockingPlugins, List <ServiceData> blockingServices, YodiiEngine engine) { Debug.Assert(blockingPlugins != null || blockingServices != null, "At least one must not be null."); Debug.Assert(solver != null); Debug.Assert(engine != null); var allP = solver.AllPlugins.Select(p => new SolvedPluginSnapshot(p)).ToDictionary(p => p.PluginInfo); var allS = solver.AllServices.Select(s => new SolvedServiceSnapshot(s)).ToDictionary(s => s.ServiceInfo.ServiceFullName); _staticOnlyResultConfiguration = new StaticSolvedConfiguration(allP.Values.ToReadOnlyList(), allS.Values.ToReadOnlyList()); var blkP = blockingPlugins == null ? CKReadOnlyListEmpty <IStaticSolvedPlugin> .Empty : blockingPlugins.Select(p => allP[p.PluginInfo]).ToReadOnlyList(); _pluginCulprits = blkP.Select(ps => ps.PluginInfo).ToReadOnlyList(); var blkS = blockingServices == null ? CKReadOnlyListEmpty <IStaticSolvedService> .Empty : blockingServices.Select(s => allS[s.ServiceInfo.ServiceFullName]).ToReadOnlyList(); _serviceCulprits = blkS.Select(ss => ss.ServiceInfo).ToReadOnlyList(); _engine = engine; _staticFailureResult = new StaticFailureResult(_staticOnlyResultConfiguration, blkP, blkS); }
/// <summary> /// Static failure resolution constructor. /// </summary> public YodiiEngineResult( IConfigurationSolver solver, List<PluginData> blockingPlugins, List<ServiceData> blockingServices, YodiiEngine engine ) { Debug.Assert( blockingPlugins != null || blockingServices != null, "At least one must not be null." ); Debug.Assert( solver != null ); Debug.Assert( engine != null ); var allP = solver.AllPlugins.Select( p => new SolvedPluginSnapshot( p ) ).ToDictionary( p => p.PluginInfo ); var allS = solver.AllServices.Select( s => new SolvedServiceSnapshot( s ) ).ToDictionary( s => s.ServiceInfo.ServiceFullName ); _staticOnlyResultConfiguration = new StaticSolvedConfiguration( allP.Values.ToReadOnlyList(), allS.Values.ToReadOnlyList() ); var blkP = blockingPlugins == null ? CKReadOnlyListEmpty<IStaticSolvedPlugin>.Empty : blockingPlugins.Select( p => allP[p.PluginInfo] ).ToReadOnlyList(); _pluginCulprits = blkP.Select( ps => ps.PluginInfo ).ToReadOnlyList(); var blkS = blockingServices == null ? CKReadOnlyListEmpty<IStaticSolvedService>.Empty : blockingServices.Select( s => allS[s.ServiceInfo.ServiceFullName] ).ToReadOnlyList(); _serviceCulprits = blkS.Select( ss => ss.ServiceInfo ).ToReadOnlyList(); _engine = engine; _staticFailureResult = new StaticFailureResult( _staticOnlyResultConfiguration, blkP, blkS ); }
public static void Trace(this IStaticFailureResult @this, IActivityMonitor m) { m.Trace().Send("Blocking Plugins: {0}", String.Join(", ", @this.BlockingPlugins.Select(p => p.PluginInfo.PluginFullName + " (" + p.WantedConfigSolvedStatus + "/" + p.DisabledReason + ")"))); m.Trace().Send("Blocking Services: {0}", String.Join(", ", @this.BlockingServices.Select(s => s.ServiceInfo.ServiceFullName + " (" + s.WantedConfigSolvedStatus + "/" + s.DisabledReason + ")"))); }