public static void PropertyToXrefString(this TypeSDPModel typeSDPModel, PageModel pageModel) { if (typeSDPModel == null) { return; } typeSDPModel.Implements = typeSDPModel.Implements?.Select(i => { return(i = InterpretXref(pageModel, i) ?? i); }); typeSDPModel.Inheritances = typeSDPModel.Inheritances?.Select(i => { return(i = InterpretXref(pageModel, i) ?? i); }); }
public override bool Interpret(PageModel pageModel, BuildContext context) { if (!base.Valid(pageModel)) { return(false); } var typeItem = pageModel.Items?.Where(item => item.Type == MemberType.Interface || item.Type == MemberType.Class)?.ToList()?.FirstOrDefault(); if (typeItem != null) { var objType = new TypeSDPModel(); objType.Constructors = TransferConstructors(pageModel.Items); objType.Fields = TransferFields(pageModel.Items); objType.Methods = TransferMethods(pageModel.Items); objType.FullName = typeItem.FullName; objType.Inheritances = ConvertStringToInlineMD(typeItem.Inheritance); objType.InheritedMembers = typeItem.InheritedMembers; objType.Name = typeItem.Name; objType.NameWithType = typeItem.NameWithType; objType.Package = typeItem.PackageName; objType.Summary = typeItem.Summary; objType.Syntax = TransferSyntax(typeItem.Syntax); objType.Type = typeItem.Type?.ToString().ToLower(); objType.Implements = typeItem.Implements; objType.TypeParameters = TransferTypeParameters(typeItem.Syntax); objType.Uid = typeItem.Uid; objType.PropertyToXrefString(pageModel); base.Save(objType, objType.YamlMime, objType.Uid, objType.Type); List <AbstractExpression> expressions = new List <AbstractExpression>(); expressions.Add(new ConstructorExpression(_outputFolder, objType.Uid)); expressions.Add(new FieldExpression(_outputFolder, objType.Uid)); expressions.Add(new MethodExpression(_outputFolder, objType.Uid)); foreach (var expression in expressions) { if (!expression.Interpret(pageModel, context)) { break; } } return(false); } return(true); }
private void PopulateTypeChildren(Type t, TypeSDPModel sdpType) { var members = new List <Member>(); if (t.Members != null) { members.AddRange(t.Members); } if (t.InheritedMembers != null) { members.AddRange(t.InheritedMembers.Keys.Select(im => _store.MembersByUid[im])); } members = members.OrderBy(m => m.DisplayName).ToList(); if (members.Count > 0) { var eiis = members.Where(m => m.IsEII).ToList(); if (eiis.Count > 0) { sdpType.EIIs = eiis.Select(m => ConvertTypeMemberLink(t, m)) .Where(m => m != null).ToList(); } foreach (var mGroup in members .Where(m => !m.IsEII) .GroupBy(m => m.ItemType)) { var list = mGroup.Select(m => ConvertTypeMemberLink(t, m)) .Where(m => m != null).ToList(); switch (mGroup.Key) { case ItemType.Property: sdpType.Properties = list; break; case ItemType.Method: sdpType.Methods = list; break; case ItemType.Event: sdpType.Events = list; break; case ItemType.Field: sdpType.Fields = list; break; case ItemType.AttachedEvent: sdpType.AttachedEvents = list; break; case ItemType.AttachedProperty: sdpType.AttachedProperties = list; break; case ItemType.Constructor: sdpType.Constructors = list; break; case ItemType.Operator: sdpType.Operators = list; break; } } } if (t.ExtensionMethods?.Count > 0) { sdpType.ExtensionMethods = t.ExtensionMethods.Select(im => ExtensionMethodToTypeMemberLink(t, im)) .Where(ext => ext != null).ToList().NullIfEmpty(); } }