private async Task UpdateFixtures(EPS3838Sport sport) { var sinceKey = $"Fixtures_{(int)sport}"; await using var db = _serviceProvider.CreateScope().ServiceProvider.GetRequiredService <AppDatabase>(); var since = await db.Sinces.FirstOrDefaultAsync(f => f.For == sinceKey); if (since == null) { since = new DBSince { For = sinceKey }; await db.Sinces.AddAsync(since); } var line = await _ps3838Client.FixturesV3Async(sport, since : since.Value); since.Value = line.Last; foreach (var league in line.League) { var existLeague = await db.Leagues.FirstOrDefaultAsync(f => f.Id == league.Id); if (existLeague == null) { existLeague = new DBLeague { Id = league.Id, Name = league.Name, SportId = (int)sport }; await db.Leagues.AddAsync(existLeague); } foreach (var @event in league.Events.Where(w => w.ParentId == null && w.ResultingUnit == EPS3838Unit.Regular)) { var existEvent = await db.Events.FirstOrDefaultAsync(f => f.Id == @event.Id); if (existEvent == null) { var newEvent = new DBEvent { Id = @event.Id, Home = @event.Home, Away = @event.Away, IsLive = @event.LiveStatus == EPS3838LiveStatus.Live, IsOpen = @event.Status != EPS3838EventStatus.Unavailable, StartAt = @event.Starts, LeagueId = existLeague.Id }; await db.Events.AddAsync(newEvent); } else { existEvent.IsLive = @event.LiveStatus == EPS3838LiveStatus.Live; existEvent.IsOpen = @event.Status != EPS3838EventStatus.Unavailable; } } } await db.SaveChangesAsync(); }
private ManagementLeague() { var DBLeague = new DBLeague(); DBLeague.ReadAllLeagues(Leagues); }