-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathGenerator.ttinclude
More file actions
31 lines (28 loc) · 1.19 KB
/
Generator.ttinclude
File metadata and controls
31 lines (28 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
<#@ import namespace="Microsoft.VisualStudio.TextTemplating" #>
<#+
public const string ParametersInjectionPattern = "<" + "#" + "#" + ">";
public void Generate(string baseTemplatePath, IDictionary<string, string> parameters)
{
var template = File.ReadAllText(this.Host.ResolvePath(baseTemplatePath));
template = template.Replace(ParametersInjectionPattern, GenerateParametersAssignmentControlBlock(parameters));
this.Write(new Engine().ProcessTemplate(template, this.Host).Trim());
}
public string GenerateParametersAssignmentControlBlock(IDictionary<string, string> parameters)
{
var sb = new StringBuilder();
sb.Append('<').Append('#').Append(' ');
foreach (var parameter in parameters)
{
sb.Append($"{parameter.Key} = \"{parameter.Value}\";");
}
sb.Append(' ').Append('#').Append('>');
return sb.ToString();
}
public string GetTemplateName()
{
return Path.GetFileNameWithoutExtension(this.Host.TemplateFile).Replace(".Generated", "");
}
#>