/// <summary> /// Gets the types. /// </summary> /// <param name="assembly">The assembly.</param> /// <param name="NameSpace">The name space.</param> private static void GetTypes(Assembly assembly, Models.Namespace NameSpace) { Console.WriteLine(NameSpace.Name); List <Type> types = new List <Type>(); List <Type> AllTypes = assembly.GetTypes().ToList(); types.AddRange(AllTypes.Where((t) => t.Namespace.ToLower() == NameSpace.Name.ToLower())); if (types != null) { types.ForEach((n) => { if (!n.Name.Contains("$")) { if (n.IsInterface) { NameSpace.Interfaces.Add(ConvertToInterface(n)); } if (n.IsClass) { NameSpace.Classes.Add(ConvertToClass(n)); } if (n.IsEnum) { NameSpace.Enums.Add(ConvertToEnum(n)); } } }); } }
internal static string GetNamespaceDocumentation(Models.Namespace @namespace) { Console.WriteLine("Reading " + @namespace.Name); var docTitle = string.Format(Title, @namespace.Name); string docIndex = string.Empty; string docBody = string.Empty; @namespace.Classes.ForEach((c) => { Console.WriteLine("Reading " + c.Name); docIndex += string.Format(ClassLink, c.Name, c.Name.ToLower()); Core.CurrentObject = c; docBody += c.Documentation; }); @namespace.Interfaces.ForEach((i) => { Console.WriteLine("Reading " + i.Name); docIndex += string.Format(ClassLink, i.Name, i.Name.ToLower()); Core.CurrentObject = i; docBody += i.Documentation; }); @namespace.Enums.ForEach((e) => { Console.WriteLine("Reading " + e.Name); docIndex += string.Format(ClassLink, e.Name, e.Name.ToLower()); Core.CurrentObject = e; docBody += string.Format(Templates.DiagramTemplate, e.Name, e.DiagramUrl); }); var topography = string.Format(Templates.DiagramTemplate, @namespace.Name, @namespace.TopographyUrl); return(string.Format( Templates.MainTemplate. Replace("[$Topography]", topography). Replace("[$PseudoNamespace]", $"[Pseudo Namespace]({Core.DocumentRoot}/{docTitle.Replace("#", "")})"). Replace("[$NavigationUp]", $"[{GetNavigationUpLink(docTitle).Replace("#", "")}]({Core.DocumentRoot}/{GetNavigationUpLink(docTitle).Replace("#", "")}.md)"), docTitle, docIndex, docBody, Core.DocumentRoot )); }
/// <summary> /// Maps the topography. /// </summary> /// <param name="Namespace">The namespace.</param> /// <returns></returns> internal static string MapTopography(Models.Namespace Namespace) { string markup = Templates.NamespaceDescriptor; markup = markup.Replace(NameElement, Namespace.Name); List <string> body = new List <string>(); Namespace.Classes.ForEach((c) => { string item = Templates.ClassDescriptor; if (c.Module) { item = item.Replace(ProtoTypeElement, "").Replace(StereoTypeElement, string.Format(StereoType, "M", "application", "module ")); } if (c.Static) { item = item.Replace(ProtoTypeElement, "").Replace(StereoTypeElement, string.Format(StereoType, "S", "orchid", "static ")); } if (c.Abstract) { item = item.Replace(ProtoTypeElement, "abstract ").Replace(StereoTypeElement, ""); } item = item.Replace(TypeElement, "class ").Replace(NameElement, c.Name); body.Add(item); }); Namespace.Interfaces.ForEach((i) => { string item = Templates.ClassDescriptor; item = item.Replace(TypeElement, "interface ").Replace(NameElement, i.Name).Replace(ProtoTypeElement, "").Replace(StereoTypeElement, ""); body.Add(item); }); Namespace.Enums.ForEach((e) => { string item = Templates.ClassDescriptor; item = item.Replace(TypeElement, "enum ").Replace(NameElement, e.Name).Replace(ProtoTypeElement, "").Replace(StereoTypeElement, ""); body.Add(item); }); markup = markup.Replace(BodyElement, string.Join(Environment.NewLine, body.ToArray())); return(markup); }