public override void Assemble( WordManipulator manipulator, Dictionary <string, object> parameters, ConnectionManager connectionManager, WordTemplateFolderManager wordTemplateFolderManager, string teamProjectName) { parameters = parameters.ToDictionary(k => k.Key, v => v.Value); //clone //If we do not have query parameters we have a single query or we can have parametrized query with iterationPath var queries = PrepareQueries(parameters); WorkItemManger workItemManger = new WorkItemManger(connectionManager); workItemManger.SetTeamProject(teamProjectName); foreach (var query in queries) { var workItems = workItemManger.ExecuteQuery(query).Take(Limit); if (String.IsNullOrEmpty(TableTemplate)) { foreach (var workItem in workItems) { if (!SpecificTemplates.TryGetValue(workItem.Type.Name, out var templateName)) { templateName = wordTemplateFolderManager.GetTemplateFor(workItem.Type.Name); } else { templateName = wordTemplateFolderManager.GenerateFullFileName(templateName); } manipulator.InsertWorkItem(workItem, templateName, true, parameters); } } else { //We have a table template, we want to export work item as a list var tableFile = wordTemplateFolderManager.GenerateFullFileName(TableTemplate); var tempFile = wordTemplateFolderManager.CopyFileInTempDirectory(tableFile); using (var tableManipulator = new WordManipulator(tempFile, false)) { tableManipulator.SubstituteTokens(parameters); tableManipulator.FillTableWithCompositeWorkItems(true, workItems); } manipulator.AppendOtherWordFile(tempFile); } } base.Assemble(manipulator, parameters, connectionManager, wordTemplateFolderManager, teamProjectName); }
public override void Assemble( WordManipulator manipulator, Dictionary <string, Object> parameters, ConnectionManager connectionManager, WordTemplateFolderManager wordTemplateFolderManager, string teamProjectName) { //ok we simply add a file to the manipulator, but remember we need to perform //substitution. var fileName = wordTemplateFolderManager.CopyFileInTempDirectory(FileName); using (WordManipulator m = new WordManipulator(fileName, false)) { m.SubstituteTokens(parameters); } //Simply append other file honoring the page break. manipulator.AppendOtherWordFile(fileName, PageBreak); File.Delete(FileName); base.Assemble(manipulator, parameters, connectionManager, wordTemplateFolderManager, teamProjectName); }