예제 #1
0
 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;
 }
예제 #2
0
        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);
        }
예제 #3
0
        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();
            }
        }