private async Task <DeleteResultResponse> DeleteResultAsync(DeleteResultRequest request) { var response = new DeleteResultResponse(); var ltiRequest = await Request.ParseLtiRequestAsync(); var signature = ltiRequest.GenerateSignature("secret"); if (!ltiRequest.Signature.Equals(signature)) { response.StatusCode = StatusCodes.Status401Unauthorized; return(response); } _result = null; return(response); }
private async Task <DeleteResultResponse> DeleteResultAsync(DeleteResultRequest arg) { var response = new DeleteResultResponse(); var ltiRequest = await Request.ParseLtiRequestAsync(); var signature = ltiRequest.GenerateSignature("secret"); if (!ltiRequest.Signature.Equals(signature)) { response.StatusCode = StatusCodes.Status401Unauthorized; return(response); } // Google Classroom does not support deleting a grade response.StatusCode = StatusCodes.Status501NotImplemented; response.StatusDescription = "Google Classroom does not support deleting submissions."; return(response); }
public async Task DeleteAsync(DeleteResultRequest deleteResultRequest) { var homeTeamName = deleteResultRequest.HomeTeamName; var awayTeamName = deleteResultRequest.AwayTeamName; var standingsEntity = await _dbContext.Standings .Include(s => s.ResultsDuringTheSeason) .ThenInclude(r => r.HomeTeam) .Include(s => s.ResultsDuringTheSeason) .ThenInclude(r => r.AwayTeam) .SingleOrDefaultAsync(r => r.SeasonId.Equals(deleteResultRequest.Season) && r.LeagueId.Equals(deleteResultRequest.LeagueName)); if (standingsEntity == null) { throw new ArgumentException($"There are no recorded results for league {deleteResultRequest.LeagueName} " + $"at season {deleteResultRequest.Season}"); } var resultEntity = standingsEntity.ResultsDuringTheSeason .FirstOrDefault(r => r.HomeTeam.Name.Equals(homeTeamName) && r.AwayTeam.Name.Equals(awayTeamName)); if (resultEntity == null) { throw new ArgumentException($"No match between {homeTeamName} and {awayTeamName}" + $" has been played that season"); } _dbContext.Results.Remove(resultEntity); await _dbContext.SaveChangesAsync(); if (deleteResultRequest.RollbackStandings) { await _standingsService.UpdateMatchAsync(resultEntity.ToDto(), true); } }