public List <CodeTemplate> CompileTemplates(ScaffoldViewModel model) { Dictionary <string, string> KeyVals = new Dictionary <string, string>(); KeyVals.Add("<#= ModelTypeName #>", model.ModelName); KeyVals.Add("<#= ModelVariable #>", model.ModelName.ToLower()); KeyVals.Add("<#= Namespace #>", model.Namespace); string json = JsonConvert.SerializeObject(KeyVals); List <ICompilable> compilers = new List <ICompilable>() { //new ModelTemplateInterpreter(_config), new ModuloInterpreter(), new KeyValReplacer(json) }; List <CodeTemplate> templates = new List <CodeTemplate>(); foreach (CodeTemplate template in DocProvider.GetTemplates(path)) { foreach (ICompilable compiler in compilers) { template.Content = compiler.Compile(template.Content); } templates.Add(template); } return(templates); }
public List <string> GetSnippets(string Filename) { List <string> snippets = new List <string>(); foreach (CodeTemplate template in DocProvider.GetTemplates(path)) { if (template.Name.Contains(Filename)) { string[] lines = template.Content.Split('~'); snippets = new List <string>(lines); } } return(snippets); }
public ModelDescription Generate(Type modelType, ModelDescriptionGenerator generator) { var provider = new DocProvider(); var complexModelDescription = new ComplexTypeModelDescription { Name = ModelNameHelper.GetModelName(modelType), ModelType = modelType, Documentation = generator.CreateDefaultDocumentation(modelType), ParameterDocumentation = provider.GetDocumentation(modelType) }; generator.GeneratedModels.Add(complexModelDescription.Name, complexModelDescription); var hasDataContractAttribute = modelType.GetCustomAttribute <DataContractAttribute>() != null; var properties = modelType.GetProperties(BindingFlags.Public | BindingFlags.Instance); foreach (var property in properties) { if (!ModelDescriptionGenerator.ShouldDisplayMember(property, hasDataContractAttribute)) { continue; } var propertyModel = new ParameterDescription { Name = GetMemberName(property, hasDataContractAttribute) }; if (generator.DocumentationProvider != null) { propertyModel.Documentation = generator.DocumentationProvider.GetDocumentation(property); } GenerateAnnotations(property, propertyModel); complexModelDescription.Properties.Add(propertyModel); propertyModel.TypeDescription = generator.GetOrCreateModelDescription(property.PropertyType); } var fields = modelType.GetFields(BindingFlags.Public | BindingFlags.Instance); foreach (var field in fields) { if (!ModelDescriptionGenerator.ShouldDisplayMember(field, hasDataContractAttribute)) { continue; } var propertyModel = new ParameterDescription { Name = GetMemberName(field, hasDataContractAttribute) }; if (generator.DocumentationProvider != null) { propertyModel.Documentation = generator.DocumentationProvider.GetDocumentation(field); } complexModelDescription.Properties.Add(propertyModel); propertyModel.TypeDescription = generator.GetOrCreateModelDescription(field.FieldType); } return(complexModelDescription); }