public override IEnumerable <Model.GenericPrediction> FetchPredictions(Model.IValueOptions valueOptions)
        {
            var gameWeek      = this.fixtureRepository.GetDaysMatches(valueOptions.Tournament.TournamentName, valueOptions.CouponDate);
            var footballTeams = new List <TeamPlayer>();
            var predictions   = new List <Model.GenericPrediction>();

            var webRepository = this.webRepositoryProvider.CreateWebRepository(valueOptions.CouponDate);

            foreach (var game in gameWeek)
            {
                var homeTeam = game.TeamsPlayerA;
                var awayTeam = game.TeamsPlayerB;

                footballTeams.Add(homeTeam);
                footballTeams.Add(awayTeam);
            }

            for (int i = 0; i < footballTeams.Count(); i += 2)
            {
                var homeTeamID = footballTeams[i].ExternalID == string.Empty ? 0 : int.Parse(footballTeams[i].ExternalID);
                var awayTeamID = footballTeams[i + 1].ExternalID == string.Empty ? 0 : int.Parse(footballTeams[i + 1].ExternalID);

                var predictionURL = this.predictionRepository.GetFootballAPIURL(homeTeamID, awayTeamID);

                var jsonFootballPredicton = (APIFootballPrediction)webRepository.ParseJson <APIFootballPrediction>(
                    predictionURL, s => ProgressReporterProvider.Current.ReportProgress(s, Model.ReporterImportance.Low, Model.ReporterAudience.Admin), string.Format("{0}-{1}",
                                                                                                                                                                      valueOptions.Tournament.TournamentName.Replace(" ", ""), valueOptions.CouponDate.ToShortDateString()));
                predictions.Add(ConvertAPIToGeneric(jsonFootballPredicton, valueOptions.Tournament, valueOptions.CouponDate, predictionURL));
            }
            return(predictions);
        }
        public IEnumerable <Model.GenericPrediction> GetPredictions(Model.IValueOptions valueOptions)
        {
            var predictionsReturn = new List <Model.GenericPrediction>();
            var todaysRows        = this.excelMatches.Where(x => x.Field <DateTime>("DateToTake").Date == valueOptions.CouponDate.Date);

            foreach (var row in todaysRows)
            {
                predictionsReturn.Add(this.predictions[row.Field <string>("URL")]);
            }
            return(predictionsReturn);
        }
        public override IEnumerable <Model.GenericPrediction> FetchPredictionsCoupon(Model.IValueOptions valueOptions)
        {
            var predictions   = new List <Model.GenericPrediction>();
            var atp           = "ATP";
            var webRepository = this.webRepositoryProvider.CreateWebRepository(valueOptions.CouponDate);

            var jsonTennisMatches = webRepository.GetJsonObjects <APITennisMatch>(this.predictionRepository.GetTodaysMatchesURL(),
                                                                                  s => ProgressReporterProvider.Current.ReportProgress(s, Model.ReporterImportance.Low, Model.ReporterAudience.Admin), string.Format("{0}-{1}", atp, valueOptions.CouponDate.ToShortDateString()));

            foreach (var jsonTennisMatch in jsonTennisMatches)
            {
                predictions.Add(new Model.TennisPrediction()
                {
                    PlayerAFirstName = jsonTennisMatch.PlayerAFirstName,
                    TeamOrPlayerA    = jsonTennisMatch.PlayerASurname,
                    PlayerBFirstName = jsonTennisMatch.PlayerBSurname,
                    TeamOrPlayerB    = jsonTennisMatch.PlayerBSurname,
                });
            }

            return(predictions);
        }
        public override IEnumerable <Model.GenericPrediction> FetchPredictions(Model.IValueOptions valueOptions)
        {
            var predictions   = new List <Model.GenericPrediction>();
            var atp           = "ATP";
            var webRepository = this.webRepositoryProvider.CreateWebRepository(valueOptions.CouponDate);

            var jsonTennisMatches = webRepository.GetJsonObjects <APITennisMatch>(this.predictionRepository.GetTodaysMatchesURL(),
                                                                                  s => ProgressReporterProvider.Current.ReportProgress(s, Model.ReporterImportance.Low, Model.ReporterAudience.Admin), string.Format("{0}-{1}", atp, valueOptions.CouponDate.ToShortDateString()));

            foreach (var jsonTennisMatch in jsonTennisMatches)
            {
                var predictionURL = new Uri(jsonTennisMatch.ToString());

                var jsonTennisPrediction = (APITennisPrediction)webRepository.ParseJson <APITennisPrediction>(
                    predictionURL, s => ProgressReporterProvider.Current.ReportProgress(s, Model.ReporterImportance.Low, Model.ReporterAudience.Admin));
                jsonTennisPrediction.StartTime = jsonTennisMatch.MatchDate;

                predictions.Add(ConvertAPIToGeneric(jsonTennisPrediction, predictionURL));
            }

            return(predictions);
        }
Exemple #5
0
        protected IEnumerable <Model.GenericMatchCoupon> FetchOddsForMatches(Model.IValueOptions valueOptions, IEnumerable <Match> matches)
        {
            var coupons      = new List <Model.GenericMatchCoupon>();
            var oddsStrategy = this.oddsProvider.CreateOddsStrategy(valueOptions);
            var timeStamp    = DateTime.Now;

            var tournamentEventIDs = matches.Select(m => m.TournamentEventID)
                                     .Distinct()
                                     .ToDictionary(t => t, t => this.fixtureRepository.GetTournamentEventById(t).EventName);


            foreach (var match in matches)
            {
                var teamOrPlayerA   = this.fixtureRepository.GetTeamOrPlayerById(match.TeamAID);
                var teamOrPlayerB   = this.fixtureRepository.GetTeamOrPlayerById(match.TeamBID);
                var matchCouponURLs = this.bookmakerRepository
                                      .GetMatchCouponURLs(match.Id)
                                      .First(m => m.ExternalSource.Source == valueOptions.OddsSource.Source)
                                      .MatchCouponURLString;

                var coupon = new Model.GenericMatchCoupon
                {
                    TeamOrPlayerA       = teamOrPlayerA.Name,
                    FirstNameA          = teamOrPlayerA.FirstName,
                    TeamOrPlayerB       = teamOrPlayerB.Name,
                    FirstNameB          = teamOrPlayerB.FirstName,
                    TournamentEventName = tournamentEventIDs[match.TournamentEventID],
                    MatchURL            = new Uri(match.MatchCouponURLs.First(m => m.ExternalSource.Source == valueOptions.OddsSource.Source).MatchCouponURLString),
                    InPlay = match.InPlay
                };
                coupon.ActualOdds = oddsStrategy.GetOdds(coupon, valueOptions.CouponDate, timeStamp);
                coupons.Add(coupon);
            }
            var matchesReturn = PersistCoupons(coupons, valueOptions.CouponDate, valueOptions.Tournament.TournamentName);

            return(coupons);
        }
 public abstract Model.GenericPrediction FetchSinglePrediction(TeamPlayer teamPlayerA, TeamPlayer teamPlayerB, Tournament tournament, Model.IValueOptions valueOptions);
 public abstract IEnumerable <Model.GenericPrediction> FetchPredictionsCoupon(Model.IValueOptions valueOptions);
        public override Model.GenericPrediction FetchSinglePrediction(TeamPlayer teamPlayerA, TeamPlayer teamPlayerB, Tournament tournament, Model.IValueOptions valueOptions)
        {
            var webRepository = this.webRepositoryProvider.CreateWebRepository(valueOptions.CouponDate);

            var predictionURL = this.predictionRepository.GetTennisPredictionURL(teamPlayerA, teamPlayerB, tournament, valueOptions.CouponDate);

            var jsonTennisPrediction = (APITennisPrediction)webRepository.ParseJson <APITennisPrediction>(
                predictionURL, s => ProgressReporterProvider.Current.ReportProgress(s, Model.ReporterImportance.Low, Model.ReporterAudience.Admin));

            jsonTennisPrediction.StartTime = valueOptions.CouponDate;

            return(ConvertAPIToGeneric(jsonTennisPrediction, predictionURL));
        }
Exemple #9
0
        public async Task <IEnumerable <Model.GenericPrediction> > FetchPredictionsAsync(Model.IValueOptions valueOptions)
        {
            var daysMatches =
                this.fixtureRepository
                .GetDaysMatches(valueOptions.Tournament.TournamentName, valueOptions.CouponDate);
            var predictionURLs = new List <Uri>();
            var predictions    = new List <Model.GenericPrediction>();

            var webRepository =
                this.webRepositoryProvider
                .CreateWebRepository(valueOptions.CouponDate);

            foreach (var match in daysMatches)
            {
                var predictionURL =
                    this.predictionRepository
                    .GetFootballAPIURL(int.Parse(match.TeamsPlayerA.ExternalID),
                                       int.Parse(match.TeamsPlayerB.ExternalID));
                predictionURLs.Add(predictionURL);
            }

            var apiModels = await webRepository.ParseJsons <APIFootballPrediction>(predictionURLs);

            return(apiModels.Zip(predictionURLs, (m, u) => new { model = m, url = u })
                   .ToList()
                   .Select(x => ConvertAPIToGeneric(x.model,
                                                    valueOptions.Tournament,
                                                    valueOptions.CouponDate,
                                                    x.url)));
        }
        public async Task <Model.GenericPrediction> FetchSinglePredictionAsync(TeamPlayer teamPlayerA, TeamPlayer teamPlayerB, Tournament tournament, Model.IValueOptions valueOptions)
        {
            var webRepository =
                this.webRepositoryProvider
                .CreateWebRepository(valueOptions.CouponDate);

            var predictionURL =
                this.predictionRepository
                .GetTennisPredictionURL(teamPlayerA, teamPlayerB, tournament, valueOptions.CouponDate);

            var jsonTennisPrediction = await
                                       webRepository.ParseJson <APITennisPrediction>(predictionURL);

            jsonTennisPrediction.StartTime = valueOptions.CouponDate;

            return(ConvertAPIToGeneric(jsonTennisPrediction, predictionURL));
        }
        public async Task <IEnumerable <Model.GenericPrediction> > FetchPredictionsCouponAsync(Model.IValueOptions valueOptions)
        {
            var predictions   = new List <Model.GenericPrediction>();
            var webRepository =
                this.webRepositoryProvider
                .CreateWebRepository(valueOptions.CouponDate);

            var jsonTennisMatches =
                await webRepository.ParseJsonEnumerable <APITennisMatch>(
                    this.predictionRepository.GetTodaysMatchesURL(),
                    string.Format("atp-{0}", valueOptions.CouponDate.ToShortDateString()));

            foreach (var jsonTennisMatch in jsonTennisMatches)
            {
                predictions.Add(new Model.TennisPrediction()
                {
                    PlayerAFirstName = jsonTennisMatch.PlayerAFirstName,
                    TeamOrPlayerA    = jsonTennisMatch.PlayerASurname,
                    PlayerBFirstName = jsonTennisMatch.PlayerBSurname,
                    TeamOrPlayerB    = jsonTennisMatch.PlayerBSurname,
                });
            }
            return(predictions);
        }
        public async Task <IEnumerable <Model.GenericPrediction> > FetchPredictionsAsync(Model.IValueOptions valueOptions)
        {
            var predictions   = new List <Model.GenericPrediction>();
            var webRepository =
                this.webRepositoryProvider
                .CreateWebRepository(valueOptions.CouponDate);

            var jsonTennisMatches =
                await webRepository.ParseJsonEnumerable <APITennisMatch>(
                    this.predictionRepository.GetTodaysMatchesURL(),
                    string.Format("atp-{0}", valueOptions.CouponDate.ToShortDateString()));

            foreach (var jsonTennisMatch in jsonTennisMatches)
            {
                var predictionURL = new Uri(jsonTennisMatch.ToString());

                var jsonTennisPrediction = await
                                           webRepository.ParseJson <APITennisPrediction>(predictionURL);

                jsonTennisPrediction.StartTime = jsonTennisMatch.MatchDate;

                predictions.Add(ConvertAPIToGeneric(jsonTennisPrediction, predictionURL));
            }

            return(predictions);
        }
 public IEnumerable <Model.GenericPrediction> GetPredictions(Model.IValueOptions valueOptions)
 {
     return(genericPredictions.Where(p => p.MatchDate.Date == valueOptions.CouponDate.Date));
 }
Exemple #14
0
 public Task <Model.GenericPrediction> FetchSinglePredictionAsync(TeamPlayer teamPlayerA, TeamPlayer teamPlayerB, Tournament tournament, Model.IValueOptions valueOptions)
 {
     throw new NotImplementedException();
 }
Exemple #15
0
 public Task <IEnumerable <Model.GenericPrediction> > FetchPredictionsCouponAsync(Model.IValueOptions valueOptions)
 {
     throw new NotImplementedException();
 }
 public override IEnumerable <Model.GenericPrediction> FetchPredictionsCoupon(Model.IValueOptions valueOptions)
 {
     throw new NotImplementedException();
 }
 public override Model.GenericPrediction FetchSinglePrediction(TeamPlayer teamPlayerA, TeamPlayer teamPlayerB, Tournament tournament, Model.IValueOptions valueOptions)
 {
     throw new NotImplementedException();
 }
 public IEnumerable <Model.GenericPrediction> FetchPredictionsCoupon(Model.IValueOptions valueOptions)
 {
     return(this.spreadsheetData.GetPredictions(valueOptions));
 }