78 lines
3.6 KiB
C#
78 lines
3.6 KiB
C#
using BritishHorseRacingApi.Models;
|
|||
|
|
using SwiftyMessageHub.Core;
|
||
|
|
using System;
|
||
|
|
using System.Collections.Generic;
|
||
|
|
using System.Linq;
|
||
|
|
using System.Text;
|
||
|
|
using System.Threading.Tasks;
|
||
|
|
|
||
|
|
namespace AutoBet.DataRecorded.PreRaceRunnerRecorder
|
||
|
|
{
|
||
|
|
public class PreRaceRunnerRecorderController : MessageController
|
||
|
|
{
|
||
|
|
[MessageRoute]
|
||
|
|
public async Task RecordRunner(Runner details)
|
||
|
|
{
|
||
|
|
Console.WriteLine($"Saving runner {details.RacehorseName}");
|
||
|
|
using (var db = new Db.HorseRacingDataContext())
|
||
|
|
{
|
||
|
|
db.Runners.Add(new Db.Runner()
|
||
|
|
{
|
||
|
|
HeadGearWearingCode = details.HeadGearWearingCode,
|
||
|
|
HeadGearWearingSheepSkin = details.HeadGearWearingSheepSkin,
|
||
|
|
HeadGearDescription = details.HeadGearDescription,
|
||
|
|
HeadGearAbbreviation = details.HeadGearAbbreviation,
|
||
|
|
JockeyProfile = details.JockeyProfile,
|
||
|
|
CourseWinner = details.CourseWinner,
|
||
|
|
DistanceWinner = details.DistanceWinner,
|
||
|
|
WindSurgeryFirstRun = details.WindSurgeryFirstRun,
|
||
|
|
TrainerId = details.TrainerId,
|
||
|
|
TrainerName = details.TrainerName,
|
||
|
|
OwnerId = details.OwnerId,
|
||
|
|
OwnerName = details.OwnerName,
|
||
|
|
WbSilkCode = details.WbSilkCode,
|
||
|
|
WbSilkDescription = details.WbSilkDescription,
|
||
|
|
SilkImage = details.SilkImage,
|
||
|
|
Plus10 = details.Plus10,
|
||
|
|
ForecastPriceNumerator = details.ForecastPriceNumerator,
|
||
|
|
ForecastPriceDenominator = details.ForecastPriceDenominator,
|
||
|
|
WeightText = details.WeightText,
|
||
|
|
WeightsJockeyClaiming = details.WeightsJockeyClaiming,
|
||
|
|
Odds = details.Odds,
|
||
|
|
DecimalOdds = details.DecimalOdds(),
|
||
|
|
JockeyName = details.JockeyName,
|
||
|
|
Status = (Db.Status)details.Status,
|
||
|
|
RaceId = details.RaceId,
|
||
|
|
YearOfRace = details.YearOfRace,
|
||
|
|
DivisionSequence = details.DivisionSequence,
|
||
|
|
AnimalId = details.AnimalId,
|
||
|
|
RacehorseName = details.RacehorseName,
|
||
|
|
AgeYears = details.AgeYears,
|
||
|
|
Bred = details.Bred,
|
||
|
|
ClothNumber = details.ClothNumber,
|
||
|
|
DrawnStall = details.DrawnStall,
|
||
|
|
ReserveNumber = details.ReserveNumber,
|
||
|
|
BhaRating = details.BhaRating,
|
||
|
|
FormFigures = details.FormFigures,
|
||
|
|
WeightValue = details.WeightValue,
|
||
|
|
PenaltyValue = details.PenaltyValue,
|
||
|
|
SexType = (Db.SexType)details.SexType,
|
||
|
|
NonRunnerDeclaredReason = details.NonRunnerDeclaredReason,
|
||
|
|
NonRunnerDeclaredDate = details.NonRunnerDeclaredDate,
|
||
|
|
NonRunnerDeclaredTime = details.NonRunnerDeclaredTime,
|
||
|
|
RunnerNumber = details.RunnerNumber,
|
||
|
|
JockeyId = details.JockeyId,
|
||
|
|
RaceHorseNameWithoutCountry = details.RacehorseNameWithoutCountry,
|
||
|
|
WeightInGrams = details.WeightInGrams,
|
||
|
|
LastRuns = details.LastRuns?.Select(e => new Db.LastRun()
|
||
|
|
{
|
||
|
|
Days = e.Days,
|
||
|
|
RaceType = e.RaceType
|
||
|
|
}).ToList()
|
||
|
|
});
|
||
|
|
await db.SaveChangesAsync();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|