private void GenerateFileFromScriptTemplate(string fileName, TemplateInfo selectedTemplate, Dictionary <string, object> parameters) { var executor = new TemplateExecutor(selectedTemplate.WordTemplateFolderManager); var finalFileName = executor.GenerateFile(fileName, ConnectionManager.Instance, SelectedTeamProject.Name, parameters); ManageGeneratedWordFile(finalFileName); }
private static void PerformTemplateExport(ConnectionManager connection) { var wordFolderManager = new WordTemplateFolderManager(options.TemplateFolder); var executor = new TemplateExecutor(wordFolderManager); //now we need to ask user parameter value Dictionary <string, Object> parameters = new Dictionary <string, object>(); foreach (var commandLineParam in options.Parameters) { var splitted = commandLineParam.Split('='); if (splitted.Length == 2) { Log.Debug("Found parameter {paramName} in command line with value {value}", splitted[0], splitted[1]); parameters[splitted[0]] = splitted[1]; } else { Log.Error("Command line parameter {param} is not in the form name=value", commandLineParam); } } foreach (var parameterName in wordFolderManager.TemplateDefinition.ParameterSection.Parameters.Keys) { if (!parameters.ContainsKey(parameterName)) { Console.Write($"Parameter {parameterName}:"); parameters[parameterName] = Console.ReadLine(); } } var tempFileName = Path.GetTempPath() + Guid.NewGuid().ToString(); var generatedName = executor.GenerateFile(tempFileName, connection, options.TeamProject, parameters); System.Diagnostics.Process.Start(generatedName); }
public List <ImmutableSetting> GetImmutableSettings(TemplateInfoRecord templateInfo) { TemplateExecutor executor = new TemplateExecutor(); string preprocessedContent = executor.ProcessTemplateToString(templateInfo); //MessageBox.Show(preprocessedContent); StringReader reader = new StringReader(preprocessedContent); List <ImmutableSetting> imSettings = new List <ImmutableSetting>(); string line; var immutableSettingsSection = false; while ((line = reader.ReadLine()) != null) { if (line.StartsWith("!!!!")) { if (immutableSettingsSection) { break; } } else if (line.StartsWith("####")) { immutableSettingsSection = true; string[] elements = line.Substring(4, line.Length - 4).Split('='); if (elements.Length < 2) { continue; } imSettings.Add(new ImmutableSetting(elements[0].Trim(), elements[1].Trim())); } else if (line.StartsWith("<#@ ")) { if (immutableSettingsSection) { break; } } else { break; } } return(imSettings); }
private static void PerformTemplateExport(ConnectionManager connection) { var wordFolderManager = new WordTemplateFolderManager(options.TemplateFolder); var executor = new TemplateExecutor(wordFolderManager); //now we need to ask user parameter value Dictionary <string, Object> parameters = new Dictionary <string, object>(); foreach (var parameterName in wordFolderManager.TemplateDefinition.Parameters.ParameterNames) { Console.Write($"Parameter {parameterName}:"); parameters[parameterName] = Console.ReadLine(); } var tempFileName = Path.GetTempPath() + Guid.NewGuid().ToString() + ".docx"; executor.GenerateWordFile(tempFileName, connection, options.TeamProject, parameters); System.Diagnostics.Process.Start(tempFileName); }
private void InnerExecuteExport() { var fileName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString()) + ".docx"; if (SelectedTemplate.IsScriptTemplate) { var executor = new TemplateExecutor(SelectedTemplate.WordTemplateFolderManager); //now we need to ask user parameter value Dictionary <string, Object> parameters = new Dictionary <string, object>(); foreach (var parameter in Parameters) { parameters[parameter.Name] = parameter.Value; } List <String> iterations = Iterations.Where(i => i.Selected).Select(i => i.Path).ToList(); parameters["iterations"] = iterations; executor.GenerateWordFile(fileName, ConnectionManager.Instance, SelectedTeamProject.Name, parameters); } else { var selected = SelectedQuery?.Results?.Where(q => q.Selected).ToList(); if (selected == null || selected.Count == 0) { return; } var template = SelectedTemplate.WordTemplateFolderManager; using (WordManipulator manipulator = new WordManipulator(fileName, true)) { foreach (var workItemResult in selected) { var workItem = workItemResult.WorkItem; manipulator.InsertWorkItem(workItem, template.GetTemplateFor(workItem.Type.Name), true); } } } System.Diagnostics.Process.Start(fileName); }
private void InnerExecuteDump() { foreach (var selectedTemplate in Templates.Where(t => t.IsSelected)) { var fileName = Path.Combine(Path.GetTempPath(), selectedTemplate.TemplateName, Guid.NewGuid().ToString()) + ".txt"; if (selectedTemplate.IsScriptTemplate) { var executor = new TemplateExecutor(selectedTemplate.WordTemplateFolderManager); //now we need to ask user parameter value Dictionary <string, object> parameters = PrepareUserParameters(); executor.DumpWorkItem(fileName, ConnectionManager.Instance, SelectedTeamProject.Name, parameters); } else { var selected = SelectedQuery?.Results?.Where(q => q.Selected).ToList(); if (selected == null || selected.Count == 0) { return; } var sb = new StringBuilder(); foreach (var workItemResult in selected) { var workItem = workItemResult.WorkItem; var values = workItem.CreateDictionaryFromWorkItem(); foreach (var value in values) { sb.AppendLine($"{value.Key.PadRight(50, ' ')}={value.Value}"); } File.WriteAllText(fileName, sb.ToString()); } } System.Diagnostics.Process.Start(fileName); } }