/// <summary>
        /// Execute a WIQL query to return a list of bugs using the .NET client library
        /// </summary>
        /// <returns>List of Microsoft.TeamFoundation.WorkItemTracking.WebApi.Models.WorkItem</returns>
        public List <IDefect> GetMyTasks()
        {
            List <IDefect> result = new List <IDefect>();

            using (TfsTeamProjectCollection service = Service)
            {
                WorkItemStore workItemStore = service.GetService <WorkItemStore>();

                // get the WorkItemStore service
                // get the project context for the work item store
                Project workItemProject = workItemStore.Projects[TeamProjectName];

                // search for the 'My Queries' folder
                QueryFolder myQueriesFolder = workItemProject
                                              .QueryHierarchy
                                              .FirstOrDefault(qh => qh is QueryFolder && qh.IsPersonal)
                                              as QueryFolder;

                if (myQueriesFolder != null)
                {
                    // search for the 'SOAP Sample' query
                    QueryDefinition newBugsQuery = myQueriesFolder
                                                   .FirstOrDefault(qi => qi is QueryDefinition && qi.Name.Equals(myTaskQueryName))
                                                   as QueryDefinition;

                    if (newBugsQuery == null)
                    {
                        return(result);
                    }

                    // run the 'SOAP Sample' query
                    WorkItemCollection workItems = workItemStore.Query(newBugsQuery.GetQuery(project: TeamProjectName, user: workItemStore.UserIdentityName));
                    foreach (WorkItem workItem in workItems)
                    {
                        result.Add(ToDefectItem(workItem));
                    }
                }

                return(result);
            }
        }
        public List <IDefect> GetAllDefects()
        {
            List <IDefect> result = new List <IDefect>();

            using (TfsTeamProjectCollection service = Service)
            {
                // get the WorkItemStore service
                WorkItemStore workItemStore = service.GetService <WorkItemStore>();

                QueryDefinition query = GetNewQueryDefinition("GetAllDefects",
                                                              WorkItemOutputFields,
                                                              Statement.New()
                                                              .Where(DefectField.TeamProject, "@Project")
                                                              // .Where("System.AssignedTo", "@Me")
                                                              .Where(DefectField.WorkItemType, WorkItemType)
                                                              .WhereNot(DefectField.State, "Resolved")
                                                              .WhereNot(DefectField.State, "Closed")
                                                              .WhereNot(DefectField.State, "Retired")
                                                              .WhereNot(DefectField.State, "Completed")
                                                              .WhereNot(DefectField.State, "Verified")
                                                              .WhereNot(DefectField.DefectID, "")
                                                              .WhereNot(DefectField.DefectID, "TBD")
                                                              .WhereNot(DefectField.StateGroup, "Complete")
                                                              .Where(DefectField.Title, "Request", Statement.Op.Contains)
                                                              .Where(DefectField.AreaPath, "Vita", Statement.Op.Under)
                                                              .OrderBy(DefectField.CreatedDate, Statement.Order.Descending)
                                                              //ORDER BY[System.CreatedDate] desc
                                                              );

                WorkItemCollection workItems = workItemStore.Query(query.GetQuery(project: TeamProjectName, user: workItemStore.UserIdentityName));

                result.AddRange(ToDefectItemCollection(workItems));
            }

            return(result);
        }