public async Task <IActionResult> OnPostAsync() { Assignment = await PreAssignments.FindAsync(Id); if (Assignment == null) { return(NotFound()); } Context.Entry(Assignment).Reference(x => x.PreAssignmentReport).Load(); if (Assignment.PreAssignmentReport.Type == PreAssignmentReport.PreAssignmentReportTypes.Success) { Context.Entry(Assignment).Reference(x => x.Solution).Query() .Include(x => x.MethodDeclarations).Load(); Context.Entry(Assignment).Reference(x => x.CourseClass).Query().Load(); Context.Entry(Assignment).Reference(x => x.TestProject).Query() .Include(x => x.UnitTests).Load(); var assignment = new Assignment() { CourseClass = Assignment.CourseClass, Filename = Assignment.Filename, Name = Assignment.Name, Solution = Assignment.Solution, TestProject = Assignment.TestProject, }; Assignments.Add(assignment); PreAssignments.Remove(Assignment); await Context.SaveChangesAsync(); return(RedirectToPage("/Assignments/Details", new { assignment.Id })); } else { Assignment.PreAssignmentReport = new PreAssignmentPendingReport(); PreAssignments.Update(Assignment); await Context.SaveChangesAsync(); BackgroundJob.Enqueue(() => EngineService.RunPreAssignment(Id)); } return(RedirectToPage(new { Id })); }
public async Task <IActionResult> OnPostCreateAsync() { if (!ModelState.IsValid) { return(Page()); } var course = await CourseClasses.FindAsync(Id); if (course == null) { return(NotFound()); } Context.Entry(course).Collection(x => x.PreAssignments).Load(); PreAssignment.PreAssignmentReport = new PreAssignmentPendingReport(); var testProject = FileHelper.ProcessFormFile(TestProjectFiles, ModelState); var solution = FileHelper.ProcessFormFile(SolutionFiles, ModelState); if (!ModelState.IsValid) { return(Page()); } PreAssignment.TestProject.Files = testProject; PreAssignment.Solution.Files = solution; course.PreAssignments.Add(PreAssignment); CourseClasses.Update(course); await Context.SaveChangesAsync(); var id = PreAssignment.Id; EngineService.RunPreAssignment(id); return(RedirectToPage("/PendingAssignments/Index", new { Id })); }