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