/// <summary> /// Returns the template architecture serialized as Json for the solution /// </summary> /// <returns></returns> public virtual JsonSitecoreTemplateArchitecture GetTemplateArchitectureForExport() { var templateRoot = _database.GetItem(SitecoreUMLConfiguration.Instance.TemplatesRootPath); if (templateRoot == null) { Sitecore.Diagnostics.Log.Error($"SitecoreUML Configuration Error: Template root path does not exist: '{SitecoreUMLConfiguration.Instance.TemplatesRootPath}'.", this); throw new Sitecore.Exceptions.ItemNotFoundException("SitecoreUML Configuration Error: The configured template root item could not be found. See the Sitecore log for more details."); } var excludePaths = SitecoreUMLConfiguration.Instance.TemplateExcludePaths; var documentationConfiguration = (DocumentationConfiguration)null; var documentationConfigurationItem = _database.GetItem(SitecoreUMLConfiguration.Instance.DocumentationConfigurationPath); if (documentationConfigurationItem != null) { documentationConfiguration = new DocumentationConfiguration() { DocumentationTitle = documentationConfigurationItem["DocumentationTitle"], ExcludedItemPaths = ((MultilistField)documentationConfigurationItem.Fields["ExcludedItems"]) ?.GetItems() ?.Select(item => item.Paths.Path), FoundationLayerRoot = (JsonSitecoreItem)((ReferenceField)documentationConfigurationItem.Fields["FoundationLayerRoot"]) ?.TargetItem, FoundationModuleFolders = ((MultilistField)documentationConfigurationItem.Fields["FoundationModuleFolders"]) .GetItems() .Select(item => (JsonSitecoreItem)item) .ToArray(), FeatureLayerRoot = (JsonSitecoreItem)((ReferenceField)documentationConfigurationItem.Fields["FeatureLayerRoot"]) ?.TargetItem, FeatureModuleFolders = ((MultilistField)documentationConfigurationItem.Fields["FeatureModuleFolders"]) .GetItems() .Select(item => (JsonSitecoreItem)item) .ToArray(), ProjectLayerRoot = (JsonSitecoreItem)((ReferenceField)documentationConfigurationItem.Fields["ProjectLayerRoot"]) ?.TargetItem, ProjectModuleFolders = ((MultilistField)documentationConfigurationItem.Fields["ProjectModuleFolders"]) .GetItems() .Select(item => (JsonSitecoreItem)item) .ToArray() }; excludePaths.AddRange( documentationConfiguration.ExcludedItemPaths .Where(path => !excludePaths.Contains(path))); } return(new JsonSitecoreTemplateArchitecture() { Items = GetChildJsonSitecoreItems( templateRoot, templateRoot, excludePaths), DocumentationConfiguration = documentationConfiguration }); }
public EndPointConfiguration(string route, Dictionary <string, IExposedMethodInformation> methods, bool enableDocumentation, DocumentationConfiguration documentationConfiguration) { Route = route; Methods = methods; EnableDocumentation = enableDocumentation; DocumentationConfiguration = documentationConfiguration; }
public CurrentApiInformation(ImmutableLinkedList <Func <Type, IEnumerable <IMethodAuthorization> > > authorizations, ImmutableLinkedList <Func <MethodInfo, Func <ICallExecutionContext, IEnumerable <ICallFilter> > > > filters, ImmutableLinkedList <Func <Type, IEnumerable <string> > > prefixes, NamingConventions namingConventions, ImmutableLinkedList <Func <MethodInfo, bool> > methodFilters, bool enableDocumentation, DocumentationConfiguration documentationConfiguration, bool supportResponseCompression) { Authorizations = authorizations; Filters = filters; Prefixes = prefixes; NamingConventions = namingConventions; MethodFilters = methodFilters; EnableDocumentation = enableDocumentation; DocumentationConfiguration = documentationConfiguration; SupportResponseCompression = supportResponseCompression; }