Exemple #1
0
        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);
        }