/// <summary> /// Get work item by id /// </summary> /// <param name="workItemId"></param> /// <param name="includeLinks"></param> /// <returns></returns> public async Task <WorkItem> GetWorkItem(int workItemId, RevisionExpandOptions options = RevisionExpandOptions.none) { string response = await GetResponse(string.Format("workitems/{0}", workItemId), new Dictionary <string, object>() { { "$expand", options } }); var workItem = JsonConvert.DeserializeObject <WorkItem>(response); PrepareWorkItem(workItem); return(workItem); }
/// <summary> /// Get work item revisions /// </summary> /// <param name="workItemId"></param> /// <param name="top"></param> /// <param name="skip"></param> /// <param name="options"></param> /// <returns></returns> public async Task <JsonCollection <WorkItem> > GetWorkItemRevisions(int workItemId, int?top = null, int?skip = null, RevisionExpandOptions options = RevisionExpandOptions.none) { string response = await GetResponse(string.Format("workitems/{0}/revisions", workItemId), new Dictionary <string, object>() { { "$top", top }, { "$skip", skip }, { "$expand", options } }); var revisions = JsonConvert.DeserializeObject <JsonCollection <WorkItem> >(response); foreach (var revision in revisions.Items) { PrepareWorkItem(revision); } return(revisions); }
/// <summary> /// Get a list of work items by ids /// </summary> /// <param name="workItemIds"></param> /// <param name="includeLinks"></param> /// <param name="asOfDate"></param> /// <param name="fields"></param> /// <returns></returns> public async Task <JsonCollection <WorkItem> > GetWorkItems(int[] workItemIds, RevisionExpandOptions options = RevisionExpandOptions.none, DateTime?asOfDate = null, string[] fields = null) { var arguments = new Dictionary <string, object>() { { "ids", string.Join(",", workItemIds) }, { "$expand", options.ToString() } }; if (asOfDate.HasValue) { arguments.Add("asof", asOfDate.Value.ToUniversalTime().ToString("u")); } if (fields != null) { arguments.Add("fields", string.Join(",", fields)); } string response = await GetResponse("workitems", arguments); var workItems = JsonConvert.DeserializeObject <JsonCollection <WorkItem> >(response); for (int i = 0; i < workItems.Count; i++) { PrepareWorkItem(workItems[i]); } return(workItems); }
/// <summary> /// Get work item revision /// </summary> /// <param name="workItemId"></param> /// <param name="revision"></param> /// <param name="options"></param> /// <returns></returns> public async Task<WorkItem> GetWorkItemRevision(int workItemId, int revision, RevisionExpandOptions options = RevisionExpandOptions.none) { string response = await GetResponse(string.Format("workitems/{0}/revisions/{1}", workItemId, revision), new Dictionary<string, object>() { { "$expand", options } }); var workItem = JsonConvert.DeserializeObject<WorkItem>(response); PrepareWorkItem(workItem); return workItem; }
/// <summary> /// Get work item revisions /// </summary> /// <param name="workItemId"></param> /// <param name="top"></param> /// <param name="skip"></param> /// <param name="options"></param> /// <returns></returns> public async Task<JsonCollection<WorkItem>> GetWorkItemRevisions(int workItemId, int? top = null, int? skip = null, RevisionExpandOptions options = RevisionExpandOptions.none) { string response = await GetResponse(string.Format("workitems/{0}/revisions", workItemId), new Dictionary<string, object>() { { "$top", top }, { "$skip", skip }, { "$expand", options } }); var revisions = JsonConvert.DeserializeObject<JsonCollection<WorkItem>>(response); foreach (var revision in revisions.Items) { PrepareWorkItem(revision); } return revisions; }
/// <summary> /// Get a list of work items by ids /// </summary> /// <param name="workItemIds"></param> /// <param name="includeLinks"></param> /// <param name="asOfDate"></param> /// <param name="fields"></param> /// <returns></returns> public async Task<JsonCollection<WorkItem>> GetWorkItems(int[] workItemIds, RevisionExpandOptions options = RevisionExpandOptions.none, DateTime? asOfDate = null, string[] fields = null) { var arguments = new Dictionary<string, object>() { { "ids", string.Join(",", workItemIds) }, { "$expand", options.ToString() } }; if (asOfDate.HasValue) { arguments.Add("asof", asOfDate.Value.ToUniversalTime().ToString("u")); } if (fields != null) { arguments.Add("fields", string.Join(",", fields)); } string response = await GetResponse("workitems", arguments); var workItems = JsonConvert.DeserializeObject<JsonCollection<WorkItem>>(response); for (int i = 0; i < workItems.Count; i++) { PrepareWorkItem(workItems[i]); } return workItems; }