コード例 #1
0
        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!");
        }
コード例 #2
0
 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;
     }
 }
コード例 #3
0
        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));
        }