public string FormatTemplate(string templatePath, Dictionary <string, object> templateVariables) { if (string.IsNullOrWhiteSpace(templatePath)) { throw new ArgumentException("Template path is not set", nameof(templatePath)); } if (templateVariables == null) { throw new ArgumentNullException(nameof(templateVariables)); } var templateModel = TemplateModel.Dictionary(templateVariables); var templateContent = _fileSystem.FileReadText(templatePath); templateContent = _templateProcessor.Transform(templateContent, templateModel); var resultFolder = _sessionContext.CurrentWorkspaceDirectory ?? _sessionContext.CurrentUserspaceDirectory; var resultFileNameBase = Path.GetFileNameWithoutExtension(templatePath); var resultFileNameDate = DateTime.UtcNow.ToString("yyyy-MM-dd-HH-mm-ss-fffffff"); var resultFileName = $"{resultFileNameBase}-{resultFileNameDate}{Path.GetExtension(templatePath)}"; var resultPath = PathBuilder.Combine(resultFolder, Directories.Temp, Directories.Workbench, Directories.Template, resultFileName); _fileSystem.FileCreate(resultPath, templateContent); return(resultPath); }