public async Task <ActionResult <CustomPagedResponse <Problemset.ProblemSummary> > > List( [FromRoute][BindRequired][ModelBinder(Name = "problemsetId")] Problemset problemset ) { var problems = await problemset.GetProblems(); return(new CustomPagedResponse <Problemset.ProblemSummary>(problems)); }
public async Task <ActionResult <CustomResponse> > Add( [FromRoute][BindRequired][ModelBinder(Name = "problemsetId")] Problemset problemset, [FromBody] AddProblemRequest request ) { var problem = await objectService.GetObject(dbContext, request.ProblemId) as IProblem; if (problem == null) { ModelState.AddModelError("ProblemId", "Problem does not exist."); return(BadRequest(ModelState)); } await problemset.AddProblem(problem, request.Identifier); return(new CustomResponse()); }
public async Task <ActionResult <CustomResponse <Guid> > > Submit( [FromServices] IObjectService objectService, [FromServices] ApplicationDbContext dbContext, [FromRoute][BindRequired][ModelBinder(Name = "problemsetId")] Problemset problemset, [FromBody] SubmitRequest request ) { var id = await problemset.Submit(request.EntryId, request.Token); if (!id.HasValue) { ModelState.AddModelError("", "Invalid EntryId or Token."); return(BadRequest(ModelState)); } return(new CustomResponse <Guid>(id.Value)); }
public async Task <ActionResult <CustomResponse <SubmissionViewResponse> > > SubmissionView( [FromRoute][BindRequired][ModelBinder(Name = "problemsetId")] Problemset problemset, [FromRoute][BindRequired] Guid entryId ) { var content = await problemset.GetSubmissionContent(entryId); if (content == null) { ModelState.AddModelError("entryId", "Submission with specified entryId does not exist."); return(BadRequest(ModelState)); } return(new CustomResponse <SubmissionViewResponse>(new SubmissionViewResponse() { Content = content })); }
public async Task <ActionResult <CustomResponse <ViewResponse> > > View( [FromRoute][BindRequired][ModelBinder(Name = "problemsetId")] Problemset problemset, [FromRoute] string id ) { var entryId = await problemset.GetProblemEntryId(id); if (!entryId.HasValue) { ModelState.AddModelError("id", "The specified id does not exist in the problemset."); return(BadRequest(ModelState)); } var content = await problemset.GetProblemContent(entryId.Value); return(new CustomResponse <ViewResponse>(new ViewResponse() { EntryId = entryId.Value, Content = content })); }