예제 #1
0
        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);
        }
예제 #2
0
        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);
            }
        }