Exemplo n.º 1
0
        public static async Task TestMain4(BlizzardAPIService blizzardAPIService, DbService dbService, GoblineerService goblineerService)
        {
            // await dbService.DropTables();
            await dbService.InitialseDatabase();

            await dbService.TruncateTables();

            var servers = new List <(string, string)>
            {
                // ("eu", "tarren-mill"),
                // ("eu", "howling-fjord"),
                ("eu", "ragnaros"),
                // ("eu", "kazzak"),
                // ("eu", "draenor"),
                ("eu", "argent-dawn"),
                ("eu", "twisting-nether"),
                ("eu", "aegwynn"),
                ("eu", "aerie-peak"),
                ("eu", "agamaggan"),
                ("eu", "aggramar"),
                // ("eu", "alexstrasza"),
                // ("eu", "alleria"),
                // ("eu", "alonsus"),
                // ("eu", "ambossar"),
                // ("eu", "anachronos"),
                // ("eu", "anetheron"),
                // ("eu", "antonidas"),
                // ("eu", "arathi"),
                // ("eu", "arathor"),
                // ("eu", "archimonde"),
            };

            var serversWithId = servers.Select(((string region, string realm)x) =>
                                               (x.region, goblineerService.GetConnectedRealmId(x.region, x.realm, "en_GB").Result)
                                               )
                                .Distinct()
                                .ToList();

            while (true)
            {
                Stopwatch stopwatch = Stopwatch.StartNew();
                var       tasks     = new List <Task>();
                foreach ((string region, int connectedRealmId) in serversWithId)
                {
                    tasks.Add(UpdateRealm(goblineerService, region, connectedRealmId));
                }
                Task.WaitAll(tasks.ToArray());

                stopwatch.Stop();
                var timeout = TimeSpan.FromMinutes(1) - stopwatch.Elapsed;
                timeout = timeout.Ticks < 0 ? TimeSpan.FromTicks(0) : timeout;

                Console.WriteLine($"Sleeping from {timeout}");
                Thread.Sleep(timeout);
            }
        }
Exemplo n.º 2
0
        public static async Task Main(string[] args)
        {
            var config = Config.LoadConfig("secrets.json");

            var blizzardAPIService = new BlizzardAPIService(config.BlizzardClientId, config.BlizzardClientSecret, config.BlizzardOAuthRegion);
            var dbService          = new DbService(config.ConnectionString);
            var goblineerService   = new GoblineerService(blizzardAPIService, dbService);

            // await TestMain3(blizzardAPIService, dbService, goblineerService);
            await TestMain4(blizzardAPIService, dbService, goblineerService);
        }