70 lines
3.0 KiB
C#
70 lines
3.0 KiB
C#
using BritishHorseRacingApi.Models;
|
|||
|
|
using SwiftyMessageHub.Core;
|
||
|
|
using System;
|
||
|
|
using System.Linq;
|
||
|
|
using System.Threading.Tasks;
|
||
|
|
|
||
|
|
namespace AutoBet.DataRecorded.MessageControllers
|
||
|
|
{
|
||
|
|
public class PostRaceRunnerResultRecorderController : MessageController
|
||
|
|
{
|
||
|
|
[MessageRoute]
|
||
|
|
public async Task SaveRunnerResult(RunnerResult details)
|
||
|
|
{
|
||
|
|
Console.WriteLine($"Saving results for {details.RacehorseName}");
|
||
|
|
var dbRunnerResult = new Db.RunnerResult()
|
||
|
|
{
|
||
|
|
RaceId = details.RaceId,
|
||
|
|
YearOfRace = details.YearOfRace,
|
||
|
|
DivisionSequence = details.DivisionSequence,
|
||
|
|
HorseId = details.HorseId,
|
||
|
|
AnimalId = details.AnimalId,
|
||
|
|
ResultFinishPos = details.ResultFinishPos,
|
||
|
|
Status = details.Status,
|
||
|
|
Ran = details.Ran,
|
||
|
|
NonRunnerDeclaredReason = details.NonRunnerDeclaredReason,
|
||
|
|
NonRunnerDeclaredDate = details.NonRunnerDeclaredDate,
|
||
|
|
NonRunnerDeclaredTime = details.NonRunnerDeclaredTime,
|
||
|
|
RacehorseName = details.RacehorseName,
|
||
|
|
AgeYear = details.AgeYear,
|
||
|
|
Bred = details.Bred,
|
||
|
|
ClothNumber = details.ClothNumber,
|
||
|
|
DrawnStall = details.DrawnStall,
|
||
|
|
WeightValue = details.WeightValue,
|
||
|
|
SexType = details.SexType,
|
||
|
|
JockeyId = details.JockeyId,
|
||
|
|
JockeyName = details.JockeyName,
|
||
|
|
JockeyProfile = details.JockeyProfile,
|
||
|
|
TrainerId = details.TrainerId,
|
||
|
|
TrainerName = details.TrainerName,
|
||
|
|
OwnerId = details.OwnerId,
|
||
|
|
OwnerName = details.OwnerName,
|
||
|
|
WbSilkCode = details.WbSilkCode,
|
||
|
|
WbSilkDescription = details.WbSilkDescription,
|
||
|
|
SilkImage = details.SilkImage,
|
||
|
|
Plus10 = details.Plus10,
|
||
|
|
ResultBtnDistance = details.ResultBtnDistance,
|
||
|
|
PositionFinishTime = details.PositionFinishTime,
|
||
|
|
BettingRatio = details.BettingRatio,
|
||
|
|
PerformanceFigure = details.PerformanceFigure,
|
||
|
|
RatingFlat = details.RatingFlat,
|
||
|
|
RatingAwt = details.RatingAwt,
|
||
|
|
RatingChase = details.RatingChase,
|
||
|
|
RatingHurdle = details.RatingHurdle,
|
||
|
|
RaceCriteriaRaceType = details.RaceCriteriaRaceType,
|
||
|
|
Hro = details.Hro,
|
||
|
|
FinishTime = details.FinishTime,
|
||
|
|
ResultFinishDNF = details.ResultFinishDNF,
|
||
|
|
FinishTimeInMilliseconds = String.IsNullOrWhiteSpace(details.ResultFinishDNF) ? details.FinishTimeInMilliseconds() : null,
|
||
|
|
LossMilliseconds = details.LossMilliseconds(),
|
||
|
|
};
|
||
|
|
using(var db = new Db.HorseRacingDataContext())
|
||
|
|
{
|
||
|
|
db.RunnerResults.Add(dbRunnerResult);
|
||
|
|
await db.SaveChangesAsync();
|
||
|
|
}
|
||
|
|
Console.WriteLine($"Saved results for {details.RacehorseName}");
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|