private async Task GetSnapshotForRealmAsync(Common.Models.Realm realm, CancellationToken stoppingToken) { var metadata = await _service.GetSnapshotMetadataAsync(realm, stoppingToken); var timestamp = (long)(metadata.Files.First().LastModified - DateTime.UnixEpoch).TotalMilliseconds; if (!lastTimestampByRealms.TryGetValue(realm, out var lastTimestamp)) { lastTimestampByRealms.Add(realm, timestamp); } else if (timestamp <= lastTimestamp) { return; } else { lastTimestampByRealms[realm] = timestamp; } var snapshot = await _service.GetSnapshotAsync(metadata, stoppingToken); Console.WriteLine($"Inserting auctions for {realm.Name}"); await InsertSnapshotToDbAsync(snapshot, stoppingToken); Console.WriteLine("Done!"); }
private async Task <Models.Realm> FindRealmAsync(Common.Models.Realm realm, CancellationToken stoppingToken) { try { return(await _dbContext.Realms.FirstOrDefaultAsync(r => r.Name == realm.Name && r.Slug == realm.Slug, stoppingToken)); } catch (Exception ex) { Console.WriteLine(ex); throw; } }
private async Task <Models.Realm> InsertRealmAsync(Common.Models.Realm realm, CancellationToken stoppingToken) { var entry = new Models.Realm { Name = realm.Name, Slug = realm.Slug }; var result = await AddAsync(_dbContext.Realms, entry); _dbContext.SaveChanges(); return(_dbContext.Realms.First(r => r.Name == entry.Name)); }