Files
AutoBet/AutoBet.DataRecorded/PostRaceDetailsCollection/PostRaceDataLoader/PostRaceRunnerCollectorController.cs
T
2020-04-13 15:16:46 +01:00

40 lines
1.1 KiB
C#

using BritishHorseRacingApi;
using BritishHorseRacingApi.Models;
using SwiftyMessageHub.Core;
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace AutoBet.DataRecorded.MessageControllers
{
public class PostRaceRunnerCollectorController : MessageController
{
private static SemaphoreSlim _semaphore = new SemaphoreSlim(1);
[MessageRoute]
public async Task LoadRaces(Db.Race details)
{
var api = new ApiClient();
Console.WriteLine($"Getting results for race {details.RaceId}");
_semaphore.Wait();
PagedResult<RunnerResult> results;
try
{
results = await api.GetRaceResults(details.RaceDate.Year, details.RaceId, details.DivisionSequence);
}
catch(Exception ex)
{
throw;
}
finally
{
_semaphore.Release();
}
foreach (var result in results.Data)
{
await CurrentContext.Hub.SendMessage(result);
}
}
}
}