private void ExecuteDisplays() { var runtimeContext = Configuration.FrameworkProvider.RuntimeContext; var messageBroker = Configuration.MessageBroker; var displayResultsStore = DisplayResultsStore; var logger = Configuration.Logger; foreach (var display in Configuration.Displays) { TabResult result; // TODO: Rename now that it is no longer *just* tab results var key = CreateKey(display); try { var displayContext = new TabContext(runtimeContext, GetTabStore(key), logger, messageBroker); // TODO: Do we need a DisplayContext? var displayData = display.GetData(displayContext); result = new TabResult(display.Name, displayData); } catch (Exception exception) { result = new TabResult(display.Name, exception.ToString()); logger.Error(Resources.ExecuteTabError, exception, key); } if (displayResultsStore.ContainsKey(key)) { displayResultsStore[key] = result; } else { displayResultsStore.Add(key, result); } } }
private void ExecuteTabs(RuntimeEvent runtimeEvent) { var runtimeContext = Configuration.FrameworkProvider.RuntimeContext; var frameworkProviderRuntimeContextType = runtimeContext.GetType(); var messageBroker = Configuration.MessageBroker; // Only use tabs that either don't specify a specific context type, or have a context type that matches the current framework provider's. var runtimeTabs = Configuration.Tabs.Where( tab => tab.RequestContextType == null || frameworkProviderRuntimeContextType.IsSubclassOf(tab.RequestContextType) || tab.RequestContextType == frameworkProviderRuntimeContextType); var supportedRuntimeTabs = runtimeTabs.Where(p => p.ExecuteOn.HasFlag(runtimeEvent)); var tabResultsStore = TabResultsStore; var logger = Configuration.Logger; foreach (var tab in supportedRuntimeTabs) { TabResult result; var key = CreateKey(tab); try { var tabContext = new TabContext(runtimeContext, GetTabStore(key), logger, messageBroker); var tabData = tab.GetData(tabContext); var tabSection = tabData as TabSection; if (tabSection != null) { tabData = tabSection.Build(); } result = new TabResult(tab.Name, tabData); } catch (Exception exception) { result = new TabResult(tab.Name, exception.ToString()); logger.Error(Resources.ExecuteTabError, exception, key); } if (tabResultsStore.ContainsKey(key)) { tabResultsStore[key] = result; } else { tabResultsStore.Add(key, result); } } }
public void GetOnePluginsData() { var key = "theKey"; var value = new TabResult("A Name", 5); var pluginData = new Dictionary<string, TabResult> { {key, value} }; var id = Guid.NewGuid(); var metadata = new GlimpseRequest(id, Store.RequestMetadataMock.Object, pluginData, TimeSpan.FromMilliseconds(0)); Store.Save(metadata); var result = Store.GetByRequestIdAndTabKey(id, key); Assert.Equal(value, result); }
public void GetOnePluginsDataReturnsNullWithMisMatchId() { var key = "theKey"; var value = new TabResult("A Name", 5); var pluginData = new Dictionary<string, TabResult> { {key,value} }; var id = Guid.NewGuid(); var metadata = new GlimpseRequest(id, Store.RequestMetadataMock.Object, pluginData, TimeSpan.FromMilliseconds(0)); Store.Save(metadata); var result = Store.GetByRequestIdAndTabKey(Guid.Parse("00000000-0000-0000-0000-000000000000"), key); Assert.Null(result); }