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)); }
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)); }
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)); }