Exemplo n.º 1
0
        private void RefreshProjectComboItems(TfsTeamProjectCollectionUri item)
        {
            IList <Project> projs = BuildProjectItems(item);

            _cboProjects.Items.Clear();
            foreach (Project p in projs)
            {
                _cboProjects.Items.Add(p.Name);
            }
            _cboProjects.SelectedIndex = 0;
        }
Exemplo n.º 2
0
        private IList <Project> BuildProjectItems(TfsTeamProjectCollectionUri uri)
        {
            IList <Project> projs = new List <Project>();

            if (!_projects.ContainsKey(uri))
            {
                TfsTeamProjectCollection tpc = new TfsTeamProjectCollection(new Uri(uri.Value), CredentialCache.DefaultNetworkCredentials);
                tpc.Authenticate();

                //运行路径(E:\VSTS\VS2015\ImportWorkItems\TFSideKicks\bin\Debug)下必须存在如下文件:Microsoft.WITDataStore64.dll,否则报错。另外“生成”Any CPU;去掉勾选“首选32位”选项
                WorkItemStore workItemStore = tpc.GetService <WorkItemStore>();
                foreach (Project item in workItemStore.Projects)
                {
                    if (!item.Name.StartsWith("CDSS"))
                    {
                        projs.Add(item);
                    }
                }
                _projects[uri] = projs;
            }
            return(_projects[uri]);
        }
Exemplo n.º 3
0
        private void _cboTfsUris_SelectedIndexChanged(object sender, EventArgs e)
        {
            TfsTeamProjectCollectionUri uri = _cboTfsUris.SelectedItem as TfsTeamProjectCollectionUri;

            RefreshProjectComboItems(uri);
        }
Exemplo n.º 4
0
        private bool SaveWorkItem(string workItemIds, string projectName)
        {
            WorkItemStore      workItemStore;
            WorkItemCollection queryResults;
            WorkItem           workItem;
            string             updateSQL = string.Empty;

            TfsTeamProjectCollectionUri uri = _cboTfsUris.SelectedItem as TfsTeamProjectCollectionUri;
            TfsTeamProjectCollection    tpc = new TfsTeamProjectCollection(new Uri(uri.Value), CredentialCache.DefaultNetworkCredentials);

            tpc.Authenticate();

            // [System.Title], [System.WorkItemType], [System.State], [System.ChangedDate], [System.Id]
            string  base_sql = string.Format("Select * From WorkItems Where [System.TeamProject] = '{0}' ", projectName);
            string  sql;
            string  query = string.Format("select e.FullName, b.* from tBug b, tbEmployee e where b.CodeEmployeeID = e.EmployeeID and b.BugId in ( {0} )", workItemIds);
            DataSet ds    = SqlDbHelper.Query(query);
            string  rets  = string.Empty;

            foreach (DataRowView item in ds.Tables[0].DefaultView)
            {
                Debug.Print(item["BugID"].ToString());
                sql           = string.Format("{0} and [System.Title] = '{1}'", base_sql, item["BugID"].ToString());
                workItemStore = tpc.GetService <WorkItemStore>();
                queryResults  = workItemStore.Query(sql);
                int cnt = queryResults.Count;
                if (cnt > 0)
                {
                    workItem = queryResults[0];
                    if (!workItem.IsOpen)
                    {
                        workItem.Open();
                    }
                }
                else
                {
                    Project project = workItemStore.Projects[projectName];
                    workItem = new WorkItem(int.Parse(item["CustomerCaseID"].ToString()) == -1 ? project.WorkItemTypes["Bug"] : project.WorkItemTypes["任务"]);
                    workItem.Fields["团队项目"].Value = projectName;
                    workItem.Fields["标题"].Value   = item["BugID"].ToString();
                }
                if (int.Parse(item["CustomerCaseID"].ToString()) == -1)
                {
                    workItem.Fields["重现步骤"].Value = item["CaseDesc"].ToString();
                }
                else
                {
                    workItem.Fields["说明"].Value = item["CaseDesc"].ToString();
                }
                workItem.Fields["指派给"].Value = item["FullName"].ToString();
                ArrayList ar = workItem.Validate();
                workItem.Save();

                int    workItemId = int.Parse(workItem.Fields["ID"].Value.ToString());
                string s          = string.Format("UPDATE tBug SET TFSWorkItemID = {0} WHERE BugID = {1};", workItemId, item["BugID"]);
                updateSQL = string.IsNullOrEmpty(updateSQL) ? s : string.Format("{0}\r\n {1}", updateSQL, s);
                rets      = string.IsNullOrEmpty(rets) ? workItem.Fields["ID"].Value.ToString() : string.Format("{0}, {1}", rets, workItem.Fields["ID"].Value);
            }
            _txtTFSWorkItemIDs.Text = rets;
            if (!string.IsNullOrEmpty(updateSQL))
            {
                if (SqlDbHelper.ExecuteSql(updateSQL) == 0)
                {
                    System.Windows.Forms.MessageBox.Show("更新JSDesk平台工作项失败!");
                }
            }

            return(true);
        }