示例#1
0
        public async Task <HttpResponseMessage> Patch(string id, JObject issueUpdate)
        {
            var issue = await _store.FindAsync(id);

            if (issue == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            await _store.UpdateAsync(id, issueUpdate);

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
示例#2
0
        public async Task <HttpResponseMessage> Post(string id, string action)
        {
            bool  isValid = IsValidAction(action);
            Issue issue   = null;

            if (isValid)
            {
                issue = await _issueStore.FindAsync(id);

                if (issue == null)
                {
                    return(Request.CreateResponse(HttpStatusCode.NotFound));
                }

                if ((action == IssueLinkFactory.Actions.Open || action == IssueLinkFactory.Actions.Transition) && issue.Status == IssueStatus.Closed)
                {
                    issue.Status = IssueStatus.Open;
                }
                else if ((action == IssueLinkFactory.Actions.Close || action == IssueLinkFactory.Actions.Transition) && issue.Status == IssueStatus.Open)
                {
                    issue.Status = IssueStatus.Closed;
                }
                else
                {
                    isValid = false;
                }
            }

            if (!isValid)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, string.Format("Action '{0}' is invalid", action)));
            }

            await _issueStore.UpdateAsync(issue);

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
示例#3
0
        public async Task <HttpResponseMessage> Patch(string id, dynamic issueUpdate)
        {
            var issue = await _store.FindAsync(id);

            if (issue == null)
            {
                return(Request.CreateResponse(HttpStatusCode.NotFound));
            }

            foreach (JProperty prop in issueUpdate)
            {
                if (prop.Name == "title")
                {
                    issue.Title = prop.Value.ToObject <string>();
                }
                else if (prop.Name == "description")
                {
                    issue.Description = prop.Value.ToObject <string>();
                }
            }
            await _store.UpdateAsync(issue);

            return(Request.CreateResponse(HttpStatusCode.OK));
        }