public CynthiaParsForm(string trackCode, int distance, SippPastPerformance pp) { _trackCode = trackCode; _distance = distance; _pp = pp; _avgDailyVariant = GetAverageDailyVariantFromDb(); _dailyVariant = _pp.TrackVariant; //_adjustedWinersTime = _pp.FinalTime - DiffInSeconds; //_adjustedThisHorseTime = _pp.ThisHorseFinalTime - DiffInSeconds; InitializeComponent(); }
public RunAgainstForm(SippPastPerformance pp) { _pp = pp; InitializeComponent(); }
public string CreateSippDailyCard(ShowMessageDelegate showMessage) { var sdc = SippDailyCard.Make(Utilities.MakeDateTime(_date), TrackCode); var jockeys = new List<string>(); foreach (var race in _race) { showMessage(string.Format("Processing race number: {0}",race.RaceNumber)); var r = SippRace.Make(race.RaceNumber, race.CorrespondingBrisRace.DistanceInYards, race.CorrespondingBrisRace.Surface, race.CorrespondingBrisRace.RaceClassification); foreach (var horse in race.Horses) { if(!horse.Scratched) { showMessage(string.Format("Processing race number: {0} horse number {1}", race.RaceNumber,horse.ProgramNumber)); string jockey = horse.CorrespondingBrisHorse.Jockey; string trainer = horse.CorrespondingBrisHorse.TrainersFullName; if(!jockeys.Contains(jockey)) { jockeys.Add(jockey); } var h = SippHorse.Make(horse.ProgramNumber, horse.Name, horse.MorningLineOdds.GetOddsToOne(), jockey, Utilities.CapitalizeOnlyFirstLetter(trainer), horse.CorrespondingBrisHorse.PrimePowerRating); h.DaysOff = horse.CorrespondingBrisHorse.DaysSinceLastRace; h.ComingFromLongLayOff = horse.FirstAfterLongLayoff; h.ComingFromLayOff = horse.FirstAfterLayoff; h.SecondOfLayoff = horse.SecondAfterLayoff; h.ThirdOfLayoff = horse.ThirdAfterLayoff; h.FirstTimeOut = horse.CorrespondingBrisHorse.IsFirstTimeOut; h.HandicappingFactors.Clear(); h.JockeyStatistics = FactorStatisticManager.GlobalStatisticsPerJockey(jockey).ToString(); h.TrainerStatistics = FactorStatisticManager.GlobalStatisticsPerTrainer(trainer).ToString(); h.JockeyTrainerStatistics = FactorStatisticManager.GlobalStatisticsPerTrainerAndJockey(trainer, jockey).ToString(); ///// Records h.LifeTimeRecord= horse.CorrespondingBrisHorse.LifeTimeEarnings; h.CurrentYearRecord= horse.CorrespondingBrisHorse.CurrentYearEarnings; h.PreviousYearRecord= horse.CorrespondingBrisHorse.PreviousYearEarnings; h.TodaysTrackRecord= horse.CorrespondingBrisHorse.TodaysTrackEarnings; h.WetTrackRecord= horse.CorrespondingBrisHorse.WetTrackEarnings; h.TurfTrackRecord = horse.CorrespondingBrisHorse.TurfTrackEarnings; h.TodaysDistanceRecord = horse.CorrespondingBrisHorse.TodaysDistanceEarnings; h.ColorAgeAndSex = horse.CorrespondingBrisHorse.ColorAgeAndSex; h.SireName = horse.CorrespondingBrisHorse.SireInfo; h.Dam = horse.CorrespondingBrisHorse.DamInfo; h.ClaimingPrice = horse.CorrespondingBrisHorse.ClaimingPriceOfTheHorse; h.Owner = horse.CorrespondingBrisHorse.Owner; h.OwnerSilks = horse.CorrespondingBrisHorse.OwnersSilks; h.QuirinSpeedPoints = horse.CorrespondingBrisHorse.QuirinSpeedPoints; h.RunningStyle = horse.CorrespondingBrisHorse.BrisRunStyle; h.MedicationAndWeight = horse.CorrespondingBrisHorse.MedicationAndWeight; h.PostPosition = horse.FinalPosition; ////// Add sire info ////////////////////////// string sire1 = horse.CorrespondingBrisHorse.Sire; string sire2 = horse.CorrespondingBrisHorse.DamSire; int i = 0; foreach (DataRow dr in Sire.GetSiresInfo(sire1, sire2).Rows) { var sippSire = new SippSire { Name = dr["Name"].ToString(), FirstTimeOutRating = dr["FTS"].ToString(), MudRating = dr["MUD"].ToString(), TurfRating = dr["TURF"].ToString(), AllWeatherRating = dr["AWS"].ToString(), AverageDistance = dr["DIST"].ToString() }; switch (i) { case 0: h.Sire = sippSire; break; default: h.DamSire = sippSire; break; } ++i; } ////////////////////////////////////////////// foreach (var factorStatistic in horse.FactorStatisticsForHorse) { var sippHandicappingFactor = SippHandicappingFactor.Make(factorStatistic.Name); sippHandicappingFactor.GeneralStats = SippHandicappingFactorStats.Make(factorStatistic.Starters,factorStatistic.WinPercent,factorStatistic.Roi, factorStatistic.IV); var trainerStats = FactorStatisticManager.Get(factorStatistic.BitMask, horse.CorrespondingBrisHorse.TrainersFullName); sippHandicappingFactor.TrainerStats = SippHandicappingFactorStats.Make(trainerStats.Starters, trainerStats.WinPercent, trainerStats.Roi, trainerStats.IV); h.HandicappingFactors.Add(sippHandicappingFactor); } foreach (var pp in horse.CorrespondingBrisHorse.PastPerformances) { var sipp = new SippPastPerformance(); sipp.DaysSincePreviousRace = pp.DaysSinceLastRace; sipp.DaysSinceTodaysRace = pp.DaysSinceThatRace ; sipp.RacingDate = pp.Date; sipp.RaceNumber = Convert.ToInt32(pp.RaceNumber); sipp.TrackCode = pp.TrackCode; sipp.TrackCondition = pp.TrackCondition; sipp.Distance = pp.DistanceAbreviation; sipp.DistanceInYards = pp.DistanceInYards; sipp.AboutDistanceFlag = pp.AboutDistanceFlag; sipp.Surface = pp.Surface; sipp.RaceCondition = Utilities.FormatCondition(pp.RaceClassification, pp.IsStateBredRestrictedRace, pp.AgeSexRestrictions); sipp.FirstCall = pp.LeadersFirstCall; sipp.SecondCall = pp.LeadersSecondCall; sipp.ThirdCall = pp.LeadersThirdCall; sipp.FinalTime = pp.LeadersFinalCall; sipp.WinnersFinalTime = pp.WinnersFinalTime; sipp.ThisHorseFinalTime = pp.ThisHorseFinalTime; sipp.PostPosition = Convert.ToInt32(pp.PostPosition); sipp.FirstCallPosition = pp.FirstCallPosition; sipp.SecondCallPosition = pp.SecondCallPosition; sipp.ThirdCallPosition= pp.StretchCallPosition; sipp.FinalPosition = pp.FinalPosition; sipp.FirstCallLengthsBehind = pp.FirstCallDistanceFromLeader; sipp.SecondCallLengthsBehind = pp.SecondCallDistanceFromLeader; sipp.ThirdCallLengthsBehind = pp.StretchCallDistanceFromLeader ; sipp.FinalLengthsBehind = pp.FinalCallDistanceFromLeader; sipp.TrackVariant = pp.TrackVariant; sipp.SpeedFigure = pp.BrisSpeedRating; sipp.Jockey = pp.Jockey.Length < 16 ? pp.Jockey : pp.Jockey.Substring(0, 15); sipp.MedicationWeightEquipment = pp.Medication + pp.Weight + pp.Equipment; sipp.Odds= pp.Odds; sipp.FieldSize = Convert.ToInt32(pp.NumberOfEntrants); sipp.WinnersName = Utilities.CapitalizeOnlyFirstLetter(pp.WinnersName); sipp.SecondPlaceFinisherName = Utilities.CapitalizeOnlyFirstLetter(pp.SecondPlaceFinisherName); sipp.ThirdPlaceFinisherName = Utilities.CapitalizeOnlyFirstLetter(pp.ThirdPlaceFinisherName); h.PastPerformances.Add(sipp); } r.AddHorse(h); } } sdc.AddRace(r); } //IEnumerable<ImpactValueStat> ImpactValues = JockeyStatistics.Get(jockey).AllStats, showMessage("Now Adding the Jockeys Stats"); foreach (var jockey in jockeys) { showMessage(string.Format("adding jockey: {0} ", jockey)); var s = sdc.GetJockeySummarizedStatistics(jockey); foreach (var ivs in JockeyStatistics.Get(jockey).AllStats) { s.Add(new SippImpactValueStat { Name = ivs.Name, IV = ivs.IV, Roi = ivs.ROI, Starters = ivs.Starters, WinPercentage = ivs.WinPercent }); } } if(!Directory.Exists(Utilities.SippFilesDirectory)) { Directory.CreateDirectory(Utilities.SippFilesDirectory); } string filename = string.Format(@"{0}\sipp_{1}_{2}.xml", Utilities.SippFilesDirectory,TrackCode,_date); sdc.SaveToXml(filename); showMessage(string.Format("File {0} was created successfully", filename)); return filename; }