コード例 #1
0
        /// <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
            });
        }
コード例 #2
0
 public EndPointConfiguration(string route,
                              Dictionary <string, IExposedMethodInformation> methods,
                              bool enableDocumentation,
                              DocumentationConfiguration documentationConfiguration)
 {
     Route                      = route;
     Methods                    = methods;
     EnableDocumentation        = enableDocumentation;
     DocumentationConfiguration = documentationConfiguration;
 }
コード例 #3
0
 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;
 }