public void BuildLocal(BehaviorGraph graph) { // Local policies will ONLY apply to chains built by this ConfigGraph, // and not to chains that are built by imports var imports = UniqueImports().Select(x => { return(Task.Factory.StartNew(() => { return x.BuildChains(graph); })); }).ToArray(); var chainSources = Sources.Select(source => { return(Task.Factory.StartNew(() => { return source.BuildChains(graph); })); }).ToArray(); Task.WaitAll(chainSources); chainSources.Each(x => graph.AddChains(x.Result)); Local.Explicits.RunActions(graph); Local.Policies.RunActions(graph); Local.Reordering.RunActions(graph); Task.WaitAll(imports); imports.Each(x => graph.AddChains(x.Result)); }
private static void addBuiltInDiagnostics(BehaviorGraph graph) { var settings = graph.Settings.Get <DiagnosticsSettings>(); if (FubuMode.InDevelopment() || settings.TraceLevel != TraceLevel.None) { var chains = new DiagnosticChainsSource().BuildChains(graph).ToArray(); // Apply authorization rules to the diagnostic chains chains.Each(x => x.Authorization.AddPolicies(settings.AuthorizationRights)); graph.AddChains(chains); } if (FubuMode.InDevelopment() || settings.TraceLevel == TraceLevel.Verbose) { graph.Services.Clear(typeof(IBindingLogger)); graph.Services.AddService <IBindingLogger, RecordingBindingLogger>(); graph.Services.Clear(typeof(IBindingHistory)); graph.Services.AddService <IBindingHistory, BindingHistory>(); graph.Services.AddService <ILogListener, RequestTraceListener>(); } else if (settings.TraceLevel == TraceLevel.Production) { graph.Services.AddService <ILogListener, ProductionModeTraceListener>(); } }
public void BuildLocal(BehaviorGraph graph) { // Local policies will ONLY apply to chains built by this ConfigGraph, // and not to chains that are built by imports var imports = UniqueImports().Select(x => { return Task.Factory.StartNew(() => { return x.BuildChains(graph); }); }).ToArray(); var chainSources = Sources.Select(source => { return Task.Factory.StartNew(() => { return source.BuildChains(graph); }); }).ToArray(); Task.WaitAll(chainSources); chainSources.Each(x => graph.AddChains(x.Result)); Local.Explicits.RunActions(graph); Local.Policies.RunActions(graph); Local.Reordering.RunActions(graph); Task.WaitAll(imports); imports.Each(x => graph.AddChains(x.Result)); }
public void BuildLocal(BehaviorGraph graph, IPerfTimer timer) { // Local policies will ONLY apply to chains built by this ConfigGraph, // and not to chains that are built by imports var imports = UniqueImports().Select(x => x.BuildChains(graph, timer)).ToArray(); var chainSources = Sources.Select( source => source.BuildChains(graph, timer)).ToArray(); Task.WaitAll(chainSources, 30.Seconds()).AssertFinished(); chainSources.Each(x => graph.AddChains(x.Result)); Local.Explicits.RunActions(graph); Local.Policies.RunActions(graph); Local.Reordering.RunActions(graph); Task.WaitAll(imports, 30.Seconds()).AssertFinished(); imports.Each(x => graph.AddChains(x.Result)); }
private static void addBuiltInDiagnostics(BehaviorGraph graph) { var settings = graph.Settings.Get<DiagnosticsSettings>(); if (FubuMode.InDevelopment() || settings.TraceLevel != TraceLevel.None) { var chains = new DiagnosticChainsSource().BuildChains(graph).ToArray(); // Apply authorization rules to the diagnostic chains chains.Each(x => x.Authorization.AddPolicies(settings.AuthorizationRights)); graph.AddChains(chains); } if (FubuMode.InDevelopment() || settings.TraceLevel == TraceLevel.Verbose) { graph.Services.Clear(typeof(IBindingLogger)); graph.Services.AddService<IBindingLogger, RecordingBindingLogger>(); graph.Services.Clear(typeof(IBindingHistory)); graph.Services.AddService<IBindingHistory, BindingHistory>(); graph.Services.AddService<ILogListener, RequestTraceListener>(); } else if (settings.TraceLevel == TraceLevel.Production) { graph.Services.AddService<ILogListener, ProductionModeTraceListener>(); } }