/// <inheritdoc /> /// <summary> /// Delete a gradebook column and the associated scores. /// </summary> protected override async Task <ActionResult> OnDeleteLineItemAsync(DeleteLineItemRequest request) { if (!int.TryParse(request.ContextId, out var contextId)) { var name = $"{nameof(request)}.{nameof(request.ContextId)}"; ModelState.AddModelError(name, $"The {name} field cannot be converted into a course id."); } if (!int.TryParse(request.LineItemId, out var lineItemId)) { var name = $"{nameof(request)}.{nameof(request.LineItemId)}"; ModelState.AddModelError(name, $"The {name} field cannot be converted into a gradebook column id."); } if (!ModelState.IsValid) { return(BadRequest(new ValidationProblemDetails(ModelState))); } if (!await _courseValidator.UserHasAccess(contextId)) { return(Unauthorized(new ProblemDetails { Title = "Not authorized", Detail = "User not authorized to access the requested course." })); } var course = await _context.GetCourseAsync(contextId); if (course == null) { return(NotFound(new ProblemDetails { Title = ReasonPhrases.GetReasonPhrase(StatusCodes.Status404NotFound), Detail = "Course not found" })); } if (course.GradebookColumns.Any(c => c.Id == lineItemId)) { var gradebookColumn = await _context.GetGradebookColumnAsync(lineItemId); _context.GradebookColumns.Remove(gradebookColumn); await _context.SaveChangesAsync(); return(NoContent()); } return(NotFound(new ProblemDetails { Title = ReasonPhrases.GetReasonPhrase(StatusCodes.Status404NotFound), Detail = "Gradebook column not found" })); }
protected override Task <ActionResult> OnDeleteLineItemAsync(DeleteLineItemRequest request) { var result = (ActionResult)Ok(); return(Task.FromResult(result)); }