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));
 }
Esempio n. 6
0
 public Task <bool> IsSatisfiedBy(ITeamResultEngineContext context, ISaveStandardResultRequest request, ResultsEngineResponse response)
 {
     return(Task.FromResult(!request.PersistGames));
 }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        public async Task <ResultsEngineStatuses> Process(ITeamResultEngineContext context, ISaveStandardResultRequest request, ResultsEngineResponse response)
        {
            var match = await context.Fixture.GetMatch(request.MatchID);

            match.SetNoWalkover();

            return(ResultsEngineStatuses.Success);
        }