Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /// <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);
        }
Exemple #3
0
        /// <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;
        }