public AbstractCouponStrategy(IBookmakerRepository bookmakerRepository, IFixtureRepository fixtureRepository, IWebRepositoryProvider webRepositoryProvider, IValueOptions valueOptions) { if (bookmakerRepository == null) { throw new ArgumentNullException("bookmakerRepository"); } if (fixtureRepository == null) { throw new ArgumentNullException("fixtureRepository"); } if (webRepositoryProvider == null) { throw new ArgumentNullException("webRepository"); } if (valueOptions == null) { throw new ArgumentNullException("valueOptions"); } this.bookmakerRepository = bookmakerRepository; this.fixtureRepository = fixtureRepository; this.webRepositoryProvider = webRepositoryProvider; this.valueOptions = valueOptions; this.missingAlias = new List <MissingTeamPlayerAliasObject>(); }
public ICouponStrategy CreateCouponStrategy(IValueOptions valueOptions) { if (valueOptions.OddsSource.Source == "Best Betting") { if (valueOptions.Sport.SportName == "Football") { return(new BestBettingCouponStrategy <BestBettingCompetitionFootball>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions)); } else if (valueOptions.Sport.SportName == "Tennis") { return(new BestBettingCouponStrategy <BestBettingCompetitionTennis>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions)); } else { throw new ArgumentException("Sport not recognised"); } } else if (valueOptions.OddsSource.Source == "Odds Checker Mobi") { if (valueOptions.Sport.SportName == "Football") { return(new OddsCheckerMobiCouponStrategy <OddsCheckerMobiCompetitionFootball>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions)); } else if (valueOptions.Sport.SportName == "Tennis") { return(new OddsCheckerMobiCouponStrategy <OddsCheckerMobiCompetitionTennis>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions)); } else { throw new ArgumentException("Sport not recognised"); } } else if (valueOptions.OddsSource.Source == "Odds Checker Web") { if (valueOptions.Sport.SportName == "Football") { return(new OddsCheckerWebCouponStrategy <OddsCheckerWebCompetitionFootball>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions)); } else if (valueOptions.Sport.SportName == "Tennis") { return(new OddsCheckerWebCouponStrategy <OddsCheckerWebCompetitionTennis>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions)); } else { throw new ArgumentException("Sport not recognised"); } } else { throw new ArgumentException("Odds Source not recognised"); } }
public ICouponStrategy CreateCouponStrategy(IValueOptions valueOptions) { if (valueOptions.Sport.SportName == "Football") return new ExcelFootballCouponStrategy(this.footballSpreadsheetData); else if (valueOptions.Sport.SportName == "Tennis") return new ExcelTennisCouponStrategy(this.tennisSpreadsheetData); else throw new ArgumentException("valueOptions.Sport.SportName"); }
public IAsyncOddsStrategy CreateOddsStrategy(IValueOptions valueOptions) { if (valueOptions.OddsSource.Source == "Best Betting") return new BestBettingAsyncOddsStrategy(valueOptions.Sport, this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider); else if (valueOptions.OddsSource.Source == "Odds Checker Mobi") return new OddsCheckerMobiAsyncOddsStrategy(valueOptions.Sport, this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider); else if (valueOptions.OddsSource.Source == "Odds Checker Web") return new OddsCheckerWebAsyncOddsStrategy(valueOptions.Sport, this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider); else throw new ArgumentException("Odds Source not recognised"); }
public void SetUp() { this.tournamentsToTest = new Dictionary <string, IEnumerable <GenericMatchCoupon> >(); this.tournamentCouponUriLookup = new Dictionary <string, Uri>(); this.tournamentCouponUriLookup.Add("VTR Open|Best Betting", new Uri("http://odds.bestbetting.com/tennis/atp-vtr-open/")); this.tournamentCouponUriLookup.Add("VTR Open|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-vina-del-mar")); this.tournamentCouponUriLookup.Add("VTR Open|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-vina-del-mar")); this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Best Betting", new Uri("http://odds.bestbetting.com/tennis/pbz-zagreb-indoors/")); this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-zagreb")); this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-zagreb")); this.tournamentCouponUriLookup.Add("Open Sud de France|Best Betting", new Uri("http://odds.bestbetting.com/tennis/open-sud-de-france/")); this.tournamentCouponUriLookup.Add("Open Sud de France|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-montpellier")); this.tournamentCouponUriLookup.Add("Open Sud de France|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-montpellier")); this.tennisTournaments = new List <string>() { "VTR Open", "PBZ Zagreb Indoors", "Open Sud de France" }; this.oddsSources = new List <string>() { "Best Betting", "Odds Checker Web", "Odds Checker Mobi" }; this.webRepositoryProvider = new ManifestWebRepositoryProvider(); this.mockFixtureRepository = BuildFixtureRepository.Create() .CanGetExternalSource() .HasGetAliasWhichReturnsItself(); this.mockBookmakerRepository = BuildBookmakerRepository.Create() .ReturnsTournamentCouponURLs(this.tournamentCouponUriLookup); this.valueOptions = new ValueOptions(); this.bestBettingFootballStrategy = new BestBettingCouponStrategy <BestBettingCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.bestBettingTennisStrategy = new BestBettingCouponStrategy <BestBettingCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.oddsCheckerMobiFootballStrategy = new OddsCheckerMobiCouponStrategy <OddsCheckerMobiCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.oddsCheckerMobiTennisStrategy = new OddsCheckerMobiCouponStrategy <OddsCheckerMobiCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.oddsCheckerWebFootballStrategy = new OddsCheckerWebCouponStrategy <OddsCheckerWebCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.oddsCheckerWebTennisStrategy = new OddsCheckerWebCouponStrategy <OddsCheckerWebCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.couponStrategies = new Dictionary <string, AbstractCouponStrategy>() { { "Best Betting|Football", this.bestBettingFootballStrategy }, { "Best Betting|Tennis", this.bestBettingTennisStrategy }, { "Odds Checker Mobi|Football", this.oddsCheckerMobiFootballStrategy }, { "Odds Checker Mobi|Tennis", this.oddsCheckerMobiTennisStrategy }, { "Odds Checker Web|Football", this.oddsCheckerWebFootballStrategy }, { "Odds Checker Web|Tennis", this.oddsCheckerWebTennisStrategy } }; }
public void SetUp() { this.tournamentsToTest = new Dictionary<string, IEnumerable<GenericMatchCoupon>>(); this.tournamentCouponUriLookup = new Dictionary<string, Uri>(); this.tournamentCouponUriLookup.Add("VTR Open|Best Betting", new Uri("http://odds.bestbetting.com/tennis/atp-vtr-open/")); this.tournamentCouponUriLookup.Add("VTR Open|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-vina-del-mar")); this.tournamentCouponUriLookup.Add("VTR Open|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-vina-del-mar")); this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Best Betting", new Uri("http://odds.bestbetting.com/tennis/pbz-zagreb-indoors/")); this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-zagreb")); this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-zagreb")); this.tournamentCouponUriLookup.Add("Open Sud de France|Best Betting", new Uri("http://odds.bestbetting.com/tennis/open-sud-de-france/")); this.tournamentCouponUriLookup.Add("Open Sud de France|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-montpellier")); this.tournamentCouponUriLookup.Add("Open Sud de France|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-montpellier")); this.tennisTournaments = new List<string>() { "VTR Open", "PBZ Zagreb Indoors", "Open Sud de France" }; this.oddsSources = new List<string>() { "Best Betting", "Odds Checker Web", "Odds Checker Mobi" }; this.webRepositoryProvider = new ManifestWebRepositoryProvider(); this.mockFixtureRepository = BuildFixtureRepository.Create() .CanGetExternalSource() .HasGetAliasWhichReturnsItself(); this.mockBookmakerRepository = BuildBookmakerRepository.Create() .ReturnsTournamentCouponURLs(this.tournamentCouponUriLookup); this.valueOptions = new ValueOptions(); this.bestBettingFootballStrategy = new BestBettingCouponStrategy<BestBettingCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.bestBettingTennisStrategy = new BestBettingCouponStrategy<BestBettingCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.oddsCheckerMobiFootballStrategy = new OddsCheckerMobiCouponStrategy<OddsCheckerMobiCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.oddsCheckerMobiTennisStrategy = new OddsCheckerMobiCouponStrategy<OddsCheckerMobiCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.oddsCheckerWebFootballStrategy = new OddsCheckerWebCouponStrategy<OddsCheckerWebCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.oddsCheckerWebTennisStrategy = new OddsCheckerWebCouponStrategy<OddsCheckerWebCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions); this.couponStrategies = new Dictionary<string, AbstractCouponStrategy>() { { "Best Betting|Football", this.bestBettingFootballStrategy }, { "Best Betting|Tennis", this.bestBettingTennisStrategy }, { "Odds Checker Mobi|Football", this.oddsCheckerMobiFootballStrategy }, { "Odds Checker Mobi|Tennis", this.oddsCheckerMobiTennisStrategy }, { "Odds Checker Web|Football", this.oddsCheckerWebFootballStrategy }, { "Odds Checker Web|Tennis", this.oddsCheckerWebTennisStrategy } }; }
public ICouponStrategy CreateCouponStrategy(IValueOptions valueOptions) { if (valueOptions.Sport.SportName == "Football") { return(new ExcelFootballCouponStrategy(this.footballSpreadsheetData)); } else if (valueOptions.Sport.SportName == "Tennis") { return(new ExcelTennisCouponStrategy(this.tennisSpreadsheetData)); } else { throw new ArgumentException("valueOptions.Sport.SportName"); } }
public AbstractAsyncCouponStrategy(IBookmakerRepository bookmakerRepository, IFixtureRepository fixtureRepository, IWebRepositoryProviderAsync webRepositoryProvider, IValueOptions valueOptions) { if (bookmakerRepository == null) throw new ArgumentNullException("bookmakerRepository"); if (fixtureRepository == null) throw new ArgumentNullException("fixtureRepository"); if (webRepositoryProvider == null) throw new ArgumentNullException("webRepository"); if (valueOptions == null) throw new ArgumentNullException("valueOptions"); this.bookmakerRepository = bookmakerRepository; this.fixtureRepository = fixtureRepository; this.webRepositoryProvider = webRepositoryProvider; this.valueOptions = valueOptions; this.missingAlias = new List<MissingTeamPlayerAliasObject>(); }
public IOddsStrategy CreateOddsStrategy(IValueOptions valueOptions) { if (valueOptions.OddsSource.Source == "Best Betting") { return(new BestBettingOddsStrategy(valueOptions.Sport, this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider)); } else if (valueOptions.OddsSource.Source == "Odds Checker Mobi") { return(new OddsCheckerMobiOddsStrategy(valueOptions.Sport, this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider)); } else if (valueOptions.OddsSource.Source == "Odds Checker Web") { return(new OddsCheckerWebOddsStrategy(valueOptions.Sport, this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider)); } else { throw new ArgumentException("Odds Source not recognised"); } }
public ICouponStrategy CreateCouponStrategy(IValueOptions valueOptions) { if (valueOptions.OddsSource.Source == "Best Betting") { if (valueOptions.Sport.SportName == "Football") return new BestBettingCouponStrategy<BestBettingCompetitionFootball>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions); else if (valueOptions.Sport.SportName == "Tennis") return new BestBettingCouponStrategy<BestBettingCompetitionTennis>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions); else throw new ArgumentException("Sport not recognised"); } else if (valueOptions.OddsSource.Source == "Odds Checker Mobi") { if (valueOptions.Sport.SportName == "Football") return new OddsCheckerMobiCouponStrategy<OddsCheckerMobiCompetitionFootball>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions); else if (valueOptions.Sport.SportName == "Tennis") return new OddsCheckerMobiCouponStrategy<OddsCheckerMobiCompetitionTennis>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions); else throw new ArgumentException("Sport not recognised"); } else if (valueOptions.OddsSource.Source == "Odds Checker Web") { if (valueOptions.Sport.SportName == "Football") return new OddsCheckerWebCouponStrategy<OddsCheckerWebCompetitionFootball>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions); else if (valueOptions.Sport.SportName == "Tennis") return new OddsCheckerWebCouponStrategy<OddsCheckerWebCompetitionTennis>(this.bookmakerRepository, this.fixtureRepository, this.webRepositoryProvider, valueOptions); else throw new ArgumentException("Sport not recognised"); } else { throw new ArgumentException("Odds Source not recognised"); } }
public OddsCheckerMobiAsyncCouponStrategy(IBookmakerRepository bookmakerRepository, IFixtureRepository fixtureRepository, IWebRepositoryProviderAsync webRepositoryProvider, IValueOptions valueOptions) : base(bookmakerRepository, fixtureRepository, webRepositoryProvider, valueOptions) { }
public BestBettingAsyncCouponStrategy(IBookmakerRepository bookmakerRepository, IFixtureRepository fixtureRepository, IWebRepositoryProviderAsync webRepositoryProvider, IValueOptions valueOptions) : base(bookmakerRepository, fixtureRepository, webRepositoryProvider, valueOptions) { }