public static SyntaxDetailViewModel FromModel(SyntaxDetail model) { if (model == null) { return null; } var result = new SyntaxDetailViewModel { Parameters = model.Parameters, TypeParameters = model.TypeParameters, Return = model.Return, }; if (model.Content != null && model.Content.Count > 0) { result.Content = model.Content.GetLanguageProperty(SyntaxLanguage.Default); var contentForCSharp = model.Content.GetLanguageProperty(SyntaxLanguage.CSharp); if (result.Content != contentForCSharp) { result.ContentForCSharp = contentForCSharp; } var contentForVB = model.Content.GetLanguageProperty(SyntaxLanguage.VB); if (result.Content != contentForVB) { result.ContentForVB = contentForVB; } } return result; }
public static SyntaxDetailViewModel FromModel(SyntaxDetail model) { if (model == null) { return(null); } var result = new SyntaxDetailViewModel { Parameters = model.Parameters, TypeParameters = model.TypeParameters, Return = model.Return, }; if (model.Content != null && model.Content.Count > 0) { result.Content = model.Content.GetLanguageProperty(SyntaxLanguage.Default); var contentForCSharp = model.Content.GetLanguageProperty(SyntaxLanguage.CSharp); if (result.Content != contentForCSharp) { result.ContentForCSharp = contentForCSharp; } var contentForVB = model.Content.GetLanguageProperty(SyntaxLanguage.VB); if (result.Content != contentForVB) { result.ContentForVB = contentForVB; } } return(result); }
public static string GenerateMarkdown(this SyntaxDetail syntax, int level, string returnHeader = null, bool addReturn = true) { var builder = new StringBuilder() .AppendLine(Header(level, "Syntax")) .AddSourceCode(syntax.Content.Replace("<>", "")); AppendGenericParameters(syntax.TypeParameters); AppendParameters(syntax.Parameters); AppendReturn(); return(builder.ToString()); void AppendParameters(List <ApiParameter> parameters) { if (parameters.IsEmpty()) { return; } builder .AppendLine(Header(level, "Parameters")) .AppendLine("Name | Type | Description") .AppendLine("--- | --- | ---") .AppendLines(parameters.Select(x => $"`{x.Name}` | `{x.Type}` | {x.Description}")) .AppendLine(); } void AppendGenericParameters(List <ApiParameter> parameters) { if (parameters.IsEmpty()) { return; } builder .AppendLine(Header(level, "Generic parameters")) .AppendLine("Name | Description") .AppendLine("--- | ---") .AppendLines(parameters.Select(x => $"`{x.Name}` | {x.Description}")) .AppendLine(); } void AppendReturn() { if (syntax.Return == null || !addReturn) { return; } builder .AppendLine(Header(level, $"{returnHeader ?? "Returns"}")) .AppendLine("Type | Description") .AppendLine("--- | ---") .AppendLine($"`{syntax.Return.Type}` | {syntax.Return.Description}") .AppendLine(); } }