public async Task <HttpResponseMessage> Get() { var result = await _store.FindAsync(); var issuesState = new IssuesState(); issuesState.Issues = result.Select(i => _stateFactory.Create(i)); return(Request.CreateResponse(HttpStatusCode.OK, issuesState)); }
public async Task <HttpResponseMessage> Get() { var issues = await _store.FindAsync(); var issuesState = new IssuesState(); issuesState.Issues = issues.Select(i => _stateFactory.Create(i)); issuesState.Links.Add(new Link { Href = Request.RequestUri, Rel = LinkFactory.Rels.Self }); return(Request.CreateResponse(HttpStatusCode.OK, issuesState)); }
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)); }