Beispiel #1
0
        public WarcraftLogs(IServiceProvider services)
        {
            _logger = services.GetRequiredService <ILogger <WarcraftLogs> >();
            _client = services.GetRequiredService <DiscordShardedClient>();
            _config = services.GetRequiredService <IConfigurationRoot>();
            _wowApi = services.GetRequiredService <WowApi>();

            try
            {
                _api           = new ApiRequestorThrottle(_config["WarcraftLogsApiCmd"], baseUrl: "https://www.warcraftlogs.com:443/v1/", services.GetRequiredService <IHttpClientFactory>().CreateClient());
                _apiCmd        = new ApiRequestorThrottle(_config["WarcraftLogsApiCmd"], baseUrl: "https://www.warcraftlogs.com:443/v1/", services.GetRequiredService <IHttpClientFactory>().CreateClient());
                _apiClassic    = new ApiRequestorThrottle(_config["WarcraftLogsApi"], baseUrl: "https://classic.warcraftlogs.com:443/v1/", services.GetRequiredService <IHttpClientFactory>().CreateClient());
                _apiClassicCmd = new ApiRequestorThrottle(_config["WarcraftLogsApiCmd"], baseUrl: "https://classic.warcraftlogs.com:443/v1/", services.GetRequiredService <IHttpClientFactory>().CreateClient());
                CharClasses    = this.GetCharClasses().Result;
                Zones          = this.GetZones().Result;
                ClassicZones   = this.GetClassicZones().Result;

                _currentRaidTier = this.SetCurrentTier();
                this.MigrateOldReports();
                this.StartTimer();
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error performing class setup for WCL: {ex.Message}");
            }
        }
Beispiel #2
0
        public async Task SetLatestRaid(Zones zone)
        {
            var currentTier = new CurrentRaidTier();

            currentTier.WclZoneId = zone.id;
            currentTier.RaidName  = zone.name;

            using (var db = new NinjaBotEntities())
            {
                var curRaid = db.CurrentRaidTier.FirstOrDefault();
                if (curRaid == null)
                {
                    await db.CurrentRaidTier.AddAsync(new CurrentRaidTier
                    {
                        WclZoneId = currentTier.WclZoneId,
                        RaidName  = currentTier.RaidName
                    });
                }
                else
                {
                    curRaid.WclZoneId = currentTier.WclZoneId;
                    curRaid.RaidName  = currentTier.RaidName;
                }

                await db.SaveChangesAsync();
            }
            WarcraftLogs.CurrentRaidTier = currentTier;
        }
Beispiel #3
0
        private CurrentRaidTier SetCurrentTier()
        {
            var currentTier = new CurrentRaidTier();

            using (var db = new NinjaBotEntities())
            {
                var tierFromDb = db.CurrentRaidTier.FirstOrDefault();
                if (tierFromDb != null)
                {
                    currentTier = tierFromDb;
                }
            }
            return(currentTier);
        }