public void RazorTemplaterTest() { const string testResult = "Test this Method"; const string templateText = "<p>@Model</p>"; var razor = new RazorTemplater<string>(testResult, templateText); var result = razor.Execute().NoTags(); Assert.IsTrue(result.ToLower() == testResult.ToLower(), "Шаблон работает не корректно"); }
public bool Execute() { // normalize project directory (must include trailing slash) ProjectDirectory = Path.GetFullPath(ProjectDirectory); if (ProjectDirectory[ProjectDirectory.Length - 1] != Path.DirectorySeparatorChar) { ProjectDirectory += Path.DirectorySeparatorChar; } // create templater BuildEngine.LogMessageEvent(new BuildMessageEventArgs($"Processing project \"{ProjectDirectory}\"", string.Empty, "Odachi.RazorTemplating.MSBuild.TransformTemplatesTask", MessageImportance.Normal)); var templater = new RazorTemplater(ProjectDirectory); // create templater var outputFileNames = new List <string>(); foreach (var inputItem in InputItems) { var inputFileName = inputItem.GetMetadata("FullPath"); var outputFileName = Path.Combine( OutputDirectory, PathTools.GetRelativePath(ProjectDirectory, Path.GetDirectoryName(inputFileName)).Replace(Path.DirectorySeparatorChar, '_').Replace(Path.AltDirectorySeparatorChar, '_') + "_" + Path.GetFileNameWithoutExtension(inputFileName) + ".cs" ); if (!Directory.Exists(OutputDirectory)) { Directory.CreateDirectory(OutputDirectory); } BuildEngine.LogMessageEvent(new BuildMessageEventArgs($"Transforming \"{inputItem.ItemSpec}\" into \"{outputFileName}\"", string.Empty, "Odachi.RazorTemplating.MSBuild.TransformTemplatesTask", MessageImportance.Normal)); templater.Generate(inputFileName, outputFileName); outputFileNames.Add(outputFileName); } OutputItems = outputFileNames.Select(fileName => new TaskItem(fileName.StartsWith(ProjectDirectory) ? fileName.Substring(ProjectDirectory.Length) : fileName)).ToArray(); return(true); }
private string GetSubstitutedContent(string text) { var razorTemplater = new RazorTemplater(text, _model); return(razorTemplater.GetResult()); }