Files

70 lines
3.0 KiB
C#
Raw Permalink Normal View History

2020-04-13 15:16:46 +01:00
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}");
}
}
}