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)); } }
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); } }