public IPlayerFixtureCalculationEngine Create(FixtureCalculationEngines engine)
        {
            switch (engine)
            {
            case FixtureCalculationEngines.SingleMatch:
                return(new SingleMatchFixtureCalculationEngine());

            case FixtureCalculationEngines.ChalksThenGames:
                return(new ChalksThenGamesPlayerFixtureCalculationEngine());

            default:
                throw new ArgumentOutOfRangeException(nameof(engine));
            }
        }
Example #2
0
        public Task <ITeamFixtureCalculationEngine> Create(FixtureCalculationEngines engineID)
        {
            switch (engineID)
            {
            case FixtureCalculationEngines.SingleMatch:
                return(Task.FromResult <ITeamFixtureCalculationEngine>(this._singleTeamMatchFixtureCalculationEngine));

            case FixtureCalculationEngines.CrossfieldCup:
            case FixtureCalculationEngines.ChalksThenGames:
                return(Task.FromResult <ITeamFixtureCalculationEngine>(this._chalksThenGamesTeamFixtureCalculationEngine));

            case FixtureCalculationEngines.GamesThenChalksDifference:
                return(Task.FromResult <ITeamFixtureCalculationEngine>(this._gamesThenChalksDifferenceTeamFixtureCalculationEngine));

            default:
                throw new ArgumentOutOfRangeException(nameof(engineID), engineID, null);
            }
        }