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(), "Шаблон работает не корректно");
 }
Exemple #2
0
        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);
        }
Exemple #3
0
        private string GetSubstitutedContent(string text)
        {
            var razorTemplater = new RazorTemplater(text, _model);

            return(razorTemplater.GetResult());
        }