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); }
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)); }
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)); }
public Task <Model.GenericPrediction> FetchSinglePredictionAsync(TeamPlayer teamPlayerA, TeamPlayer teamPlayerB, Tournament tournament, Model.IValueOptions valueOptions) { throw new NotImplementedException(); }
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)); }