Example #1
0
        public IEnumerable <MergeTask> GetWorkItemsWithMigrationScripts(Project project, string state)
        {
            var tfs = TfsTeamDataAccess.GetTfsTeamProjectCollection();

            var tasks     = new List <MergeTask>();
            var workItems = GetWorkItemsByState(project, state);

            workItems.ToList().ForEach(workItem =>
            {
                var tfsWorkItem = GetTfsWorkItem(workItem.Id);
                // Check for data script and tag.
                var changesets = TfsSourceDataAccess.GetTfsChangesetsByPathName(tfs, tfsWorkItem, "Data Scripts").ToList();                         // todo: not hard code. obvs.
                if (changesets.Any())
                {
                    tasks.AddRange(changesets.SelectMany(s => s.Changes).GroupBy(g => g.Item.ServerItem).Select(change => new MergeTask
                    {
                        Title  = string.Format("Execute Data Script: {0};", change.First().Item.ServerItem),
                        Parent = workItem
                    }));
                }
            });
            return(tasks);
        }
Example #2
0
        internal static IEnumerable <TfsWorkItem> GetTfsWorkItemsByState(TfsTeamProjectCollection tfs, Project project, string state)
        {
            var store     = tfs.GetService <WorkItemStore>();
            var workItems = store.Query(
                "select [System.Id] " +
                "from WorkItems " +
                "where [System.TeamProject] = '" + project.Name + "' " +
                "and [System.State] = '" + state + "'");

            return((from TfsWorkItem w in workItems select w).ToList());
        }
Example #3
0
        public IEnumerable <WorkItem> GetWorkItemsByState(Project project, string state)
        {
            var tfs = TfsTeamDataAccess.GetTfsTeamProjectCollection();

            return(GetTfsWorkItemsByState(tfs, project, state).Select(MapWorkItem));
        }
Example #4
0
        public IEnumerable <MergeTask> CreateMergeTasks(Project project, string parentState, string taskTitle)
        {
            var workItems = GetWorkItemsByState(project, parentState);

            return(workItems.Select(s => CreateMergeTask(s, taskTitle)).ToList());
        }