private void PersistMetadata() { var metadata = new GlimpseMetadata { Version = Version, Hash = Configuration.Hash }; var tabMetadata = metadata.Tabs; foreach (var tab in Configuration.Tabs) { var metadataInstance = new TabMetadata(); var documentationTab = tab as IDocumentation; if (documentationTab != null) { metadataInstance.DocumentationUri = documentationTab.DocumentationUri; } var layoutControlTab = tab as ILayoutControl; if (layoutControlTab != null) { metadataInstance.KeysHeadings = layoutControlTab.KeysHeadings; } var layoutTab = tab as ITabLayout; if (layoutTab != null) { metadataInstance.Layout = layoutTab.GetLayout(); } if (metadataInstance.HasMetadata) { tabMetadata[CreateKey(tab)] = metadataInstance; } } var resources = metadata.Resources; var endpoint = Configuration.ResourceEndpoint; var logger = Configuration.Logger; foreach (var resource in Configuration.Resources) { var resourceKey = CreateKey(resource); if (resources.ContainsKey(resourceKey)) { logger.Warn(Resources.GlimpseRuntimePersistMetadataMultipleResourceWarning, resource.Name); } resources[resourceKey] = endpoint.GenerateUriTemplate(resource, Configuration.EndpointBaseUri, logger); } Configuration.PersistenceStore.Save(metadata); }
public void ConvertAPluginMetadataObject() { var metadata = new TabMetadata{DocumentationUri = "anything"}; var converter = new TabMetadataConverter(); var obj = converter.Convert(metadata); var result = obj as IDictionary<string, object>; Assert.NotNull(result); Assert.True(result.ContainsKey("documentationUri")); Assert.False(result.ContainsKey("hasMetadata")); }