private static WorkItemManger PrepareWorkItemManager(ConnectionManager connectionManager, string teamProjectName)
        {
            WorkItemManger workItemManger = new WorkItemManger(connectionManager);

            workItemManger.SetTeamProject(teamProjectName);
            return(workItemManger);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        private static void TestExcelExtraction(ConnectionManager connection)
        {
            WorkItemManger workItemManger = new WorkItemManger(connection);

            workItemManger.SetTeamProject("CMMI Playground");
            var hr = workItemManger.ExecuteHierarchicQuery(@"SELECT
    *
FROM workitemLinks
WHERE
    (
        [Source].[System.TeamProject] = '{teamProjectName}'
        AND[Source].[System.WorkItemType] = 'Feature'
        AND[Source].[Microsoft.VSTS.Scheduling.TargetDate] < '2062-01-01T00:00:00.0000000'
        AND[Source].[Microsoft.VSTS.Scheduling.TargetDate] > '1990-02-02T00:00:00.0000000'
    )
    AND(
        [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
    )
    AND(
        [Target].[System.TeamProject] = '{teamProjectName}'
        AND[Target].[System.WorkItemType] <> ''
    )
MODE(Recursive)
",
                                                           new[] { "task", "requirement", "feature", "epic" });

            var tempFile = @"c:\temp\test2.xlsx";

            if (File.Exists(tempFile))
            {
                File.Delete(tempFile);
            }

            File.Copy(@"c:\temp\test.xlsx", tempFile);
            using (ExcelManipulator m = new ExcelManipulator(tempFile))
            {
                m.FillWorkItems(hr);
            }
            System.Diagnostics.Process.Start(tempFile);
        }
        private static void PerformStandardIterationExport(ConnectionManager connection)
        {
            WorkItemManger workItemManger = new WorkItemManger(connection);

            workItemManger.SetTeamProject(options.TeamProject);
            var workItems = workItemManger.LoadAllWorkItemForAreaAndIteration(
                options.AreaPath,
                options.IterationPath);

            var fileName        = Path.GetTempFileName() + ".docx";
            var templateManager = new TemplateManager("Templates");
            var template        = templateManager.GetWordDefinitionTemplate(options.TemplateName);

            using (WordManipulator manipulator = new WordManipulator(fileName, true))
            {
                AddTableContent(manipulator, workItems, template);
                foreach (var workItem in workItems)
                {
                    manipulator.InsertWorkItem(workItem, template.GetTemplateFor(workItem.Type.Name), true);
                }
            }

            System.Diagnostics.Process.Start(fileName);
        }