public ResultsEngineResponse SaveStandardResultRequest(IPlayerResultEngineContext context, ISaveStandardResultRequest request) { this._unitOfWork.GuardCheckInTransaction(); var response = new ResultsEngineResponse(); var processors = this._processorFactory.Create(context, request); var status = this._processorExecutor.Execute(context, request, response, processors); response.Status = status; return(response); }
public IList <IProcessor <ITeamResultEngineContext, ISaveStandardResultRequest, ResultsEngineResponse> > Create(ITeamResultEngineContext context, ISaveStandardResultRequest request) { var list = new List <IProcessor <ITeamResultEngineContext, ISaveStandardResultRequest, ResultsEngineResponse> >(); switch (context.CompetitionStage.CompetitionStageFormatID) { case CompetitionStageFormats.SingleLeague: case CompetitionStageFormats.Groups: { list.Add(this._validateMatchStatusProcessor); list.Add(this._validateGameResultsProcessor); list.Add(this._parseGamesProcessor); list.Add(this._ruleProcessor); list.Add(this._handicapCalculationEngineProcessor); list.Add(this._matchCalculationProcessor); list.Add(this._matchSetNoWalkoverProcessor); list.Add(this._matchResultValidatorProcessor); list.Add(this._fixtureCalculationProcessor); list.Add(this._updateLeagueTableProcessor); list.Add(this._updateLeaguePlayerMeritTableProcessor); list.Add(this._updateCompetitionPlayerMeritTableProcessor); list.Add(this._competitionPlayerStatisticsProcessor); list.Add(this._careerPlayerStatisticsProcessor); list.Add(this._careerTeamStatisticsProcessor); list.Add(this._omitGamesFromSaveProcessor); } break; case CompetitionStageFormats.SingleKnockout: { list.Add(this._validateMatchStatusProcessor); list.Add(this._validateGameResultsProcessor); list.Add(this._parseGamesProcessor); list.Add(this._ruleProcessor); list.Add(this._handicapCalculationEngineProcessor); list.Add(this._matchCalculationProcessor); list.Add(this._matchSetNoWalkoverProcessor); list.Add(this._matchResultValidatorProcessor); list.Add(this._fixtureCalculationProcessor); list.Add(this._updateCompetitionPlayerMeritTableProcessor); list.Add(this._competitionPlayerStatisticsProcessor); list.Add(this._careerPlayerStatisticsProcessor); list.Add(this._careerTeamStatisticsProcessor); list.Add(this._omitGamesFromSaveProcessor); list.Add(this._pendingFixtureProcessor); } break; default: { throw new ArgumentOutOfRangeException(); } } return(list); }
public IList <IProcessor <IPlayerResultEngineContext, ISaveStandardResultRequest, ResultsEngineResponse> > Create(IPlayerResultEngineContext context, ISaveStandardResultRequest request) { var list = new List <IProcessor <IPlayerResultEngineContext, ISaveStandardResultRequest, ResultsEngineResponse> >(); switch (context.CompetitionStage.CompetitionStageFormatID) { case CompetitionStageFormats.SingleKnockout: { list.Add(this._validateMatchStatusProcessor); list.Add(this._validateGameResultsProcessor); list.Add(this._parseGamesProcessor); list.Add(this._matchCalculationProcessor); list.Add(this._walkoverProcessor); list.Add(this._fixtureCalculationProcessor); list.Add(this._pendingFixtureProcessor); list.Add(this._competitionResultProcessor); } break; case CompetitionStageFormats.SingleLeague: case CompetitionStageFormats.Groups: break; default: throw new ArgumentOutOfRangeException(); } return(list); }
public async Task <ResultsEngineStatuses> Process(IPlayerResultEngineContext context, ISaveStandardResultRequest request, ResultsEngineResponse response) { var matchModel = await context.PlayerFixture.GetMatch(request.MatchID); matchModel.SetWalkover(Walkover.None); return(ResultsEngineStatuses.Success); }
public Task <bool> IsSatisfiedBy(IPlayerResultEngineContext context, ISaveStandardResultRequest request, ResultsEngineResponse response) { return(Task.FromResult(true)); }
public Task <bool> IsSatisfiedBy(ITeamResultEngineContext context, ISaveStandardResultRequest request, ResultsEngineResponse response) { return(Task.FromResult(!request.PersistGames)); }
public async Task <ResultsEngineStatuses> Process(ITeamResultEngineContext context, ISaveStandardResultRequest request, ResultsEngineResponse response) { var match = await context.Fixture.GetMatch(request.MatchID); match.Data.ClearGames(); match.Data.MatchStatusID = MatchStatuses.Temporary; return(ResultsEngineStatuses.Success); }
public async Task <ResultsEngineStatuses> Process(ITeamResultEngineContext context, ISaveStandardResultRequest request, ResultsEngineResponse response) { var match = await context.Fixture.GetMatch(request.MatchID); match.SetNoWalkover(); return(ResultsEngineStatuses.Success); }