コード例 #1
0
ファイル: CouponStrategy.cs プロジェクト: Double222/Samurai
        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>();
        }
コード例 #2
0
 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");
     }
 }
コード例 #3
0
 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");
 }
コード例 #4
0
 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");
 }
コード例 #5
0
            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 }
                };
            }
コード例 #6
0
      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 }
        };

      }
コード例 #7
0
 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");
     }
 }
コード例 #8
0
    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>();
    }
コード例 #9
0
 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");
     }
 }
コード例 #10
0
 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");
   }
 }
コード例 #11
0
 public OddsCheckerMobiAsyncCouponStrategy(IBookmakerRepository bookmakerRepository,
                                           IFixtureRepository fixtureRepository, IWebRepositoryProviderAsync webRepositoryProvider,
                                           IValueOptions valueOptions)
     : base(bookmakerRepository, fixtureRepository, webRepositoryProvider, valueOptions)
 {
 }
コード例 #12
0
 public BestBettingAsyncCouponStrategy(IBookmakerRepository bookmakerRepository,
                                       IFixtureRepository fixtureRepository, IWebRepositoryProviderAsync webRepositoryProvider,
                                       IValueOptions valueOptions)
     : base(bookmakerRepository, fixtureRepository, webRepositoryProvider, valueOptions)
 {
 }