예제 #1
0
        private static ApiBuildOutput FromModel(ItemViewModel model, Dictionary <string, ApiReferenceBuildOutput> references, Dictionary <string, object> metadata)
        {
            if (model == null)
            {
                return(null);
            }

            var output = new ApiBuildOutput
            {
                Uid = model.Uid,
                Id  = Utility.GetHtmlId(model.Uid),
                IsExplicitInterfaceImplementation = model.IsExplicitInterfaceImplementation,
                IsExtensionMethod = model.IsExtensionMethod,
                Parent            = ApiBuildOutputUtility.GetReferenceViewModel(model.Parent, references, model.SupportedLanguages),
                Children          = GetReferenceList(model.Children, references, model.SupportedLanguages),
                Href = model.Href,
                SupportedLanguages = model.SupportedLanguages,
                Name             = ApiBuildOutputUtility.TransformToLanguagePairList(model.Name, model.Names, model.SupportedLanguages),
                NameWithType     = ApiBuildOutputUtility.TransformToLanguagePairList(model.NameWithType, model.NamesWithType, model.SupportedLanguages),
                FullName         = ApiBuildOutputUtility.TransformToLanguagePairList(model.FullName, model.FullNames, model.SupportedLanguages),
                Type             = model.Type,
                Source           = model.Source,
                Documentation    = model.Documentation,
                AssemblyNameList = model.AssemblyNameList,
                NamespaceName    = ApiBuildOutputUtility.GetReferenceViewModel(model.NamespaceName, references, model.SupportedLanguages),
                Summary          = model.Summary,
                Remarks          = model.Remarks,
                Examples         = model.Examples,
                Syntax           = ApiSyntaxBuildOutput.FromModel(model.Syntax, references, model.SupportedLanguages),
                Overridden       = ApiBuildOutputUtility.GetApiNames(model.Overridden, references, model.SupportedLanguages),
                Overload         = ApiBuildOutputUtility.GetApiNames(model.Overload, references, model.SupportedLanguages),
                Exceptions       = GetCrefInfoList(model.Exceptions, references, model.SupportedLanguages),
                SeeAlsos         = GetLinkInfoList(model.SeeAlsos, references, model.SupportedLanguages),
                Sees             = GetLinkInfoList(model.Sees, references, model.SupportedLanguages),
                Inheritance      = GetReferenceList(model.Inheritance, references, model.SupportedLanguages, true),
                Implements       = model.Implements?.Select(u => ApiBuildOutputUtility.GetApiNames(u, references, model.SupportedLanguages)).ToList(),
                InheritedMembers = GetReferenceList(model.InheritedMembers, references, model.SupportedLanguages),
                ExtensionMethods = GetReferenceList(model.ExtensionMethods, references, model.SupportedLanguages),
                Conceptual       = model.Conceptual,
                Platform         = model.Platform,
                Attributes       = model.Attributes,
                Metadata         = metadata.Concat(model.Metadata.Where(p => !metadata.Keys.Contains(p.Key))).ToDictionary(p => p.Key, p => p.Value),
            };

            output.DerivedClasses = GetReferenceList(model.DerivedClasses, references, model.SupportedLanguages, true, output.Level + 1);
            return(output);
        }
예제 #2
0
        private static ApiBuildOutput FromModel(ItemViewModel model, Dictionary<string, ApiReferenceBuildOutput> references, Dictionary<string, object> metadata)
        {
            if (model == null) return null;

            var output = new ApiBuildOutput
            {
                Uid = model.Uid,
                Id = Utility.GetHtmlId(model.Uid),
                IsExplicitInterfaceImplementation = model.IsExplicitInterfaceImplementation,
                IsExtensionMethod = model.IsExtensionMethod,
                Parent = ApiBuildOutputUtility.GetReferenceViewModel(model.Parent, references, model.SupportedLanguages),
                Children = GetReferenceList(model.Children, references, model.SupportedLanguages),
                Href = model.Href,
                SupportedLanguages = model.SupportedLanguages,
                Name = ApiBuildOutputUtility.TransformToLanguagePairList(model.Name, model.Names, model.SupportedLanguages),
                NameWithType = ApiBuildOutputUtility.TransformToLanguagePairList(model.NameWithType, model.NamesWithType, model.SupportedLanguages),
                FullName = ApiBuildOutputUtility.TransformToLanguagePairList(model.FullName, model.FullNames, model.SupportedLanguages),
                Type = model.Type,
                Source = model.Source,
                Documentation = model.Documentation,
                AssemblyNameList = model.AssemblyNameList,
                NamespaceName = ApiBuildOutputUtility.GetReferenceViewModel(model.NamespaceName, references, model.SupportedLanguages),
                Summary = model.Summary,
                Remarks = model.Remarks,
                Examples = model.Examples,
                Syntax = ApiSyntaxBuildOutput.FromModel(model.Syntax, references, model.SupportedLanguages),
                Overridden = ApiBuildOutputUtility.GetApiNames(model.Overridden, references, model.SupportedLanguages),
                Overload = ApiBuildOutputUtility.GetApiNames(model.Overload, references, model.SupportedLanguages),
                Exceptions = GetCrefInfoList(model.Exceptions, references, model.SupportedLanguages),
                SeeAlsos = GetLinkInfoList(model.SeeAlsos, references, model.SupportedLanguages),
                Sees = GetLinkInfoList(model.Sees, references, model.SupportedLanguages),
                Inheritance = GetReferenceList(model.Inheritance, references, model.SupportedLanguages, true),
                Implements = model.Implements?.Select(u => ApiBuildOutputUtility.GetApiNames(u, references, model.SupportedLanguages)).ToList(),
                InheritedMembers = GetReferenceList(model.InheritedMembers, references, model.SupportedLanguages),
                ExtensionMethods = GetReferenceList(model.ExtensionMethods, references, model.SupportedLanguages),
                Conceptual = model.Conceptual,
                Platform = model.Platform,
                Attributes = model.Attributes,
                Metadata = metadata.Concat(model.Metadata.Where(p => !metadata.Keys.Contains(p.Key))).ToDictionary(p => p.Key, p => p.Value),
            };
            output.DerivedClasses = GetReferenceList(model.DerivedClasses, references, model.SupportedLanguages, true, output.Level + 1);
            return output;
        }