public LeaderboardIntegrationService(string apiKey)
 {
     this.apiKey = apiKey;
     leaderboard = new BattleNetService();
     requests = new RequestService(data);
     data = new QueueDodgeDB();
 }
Ejemplo n.º 2
0
        public async Task <Leaderboard> GetActivity(string bracket, Locale locale, BattleDotSwag.Region region)
        {
            var service     = new BattleNetService <Leaderboard>();
            var endpoint    = new LeaderboardEndpoint(bracket, locale, apiKey);
            var leaderboard = await service.Get(endpoint, region);

            return(leaderboard);
        }
        public async Task GetRecentActivity(
            string bracket,
            BattleDotSwag.Locale locale,
            BattleDotSwag.Region region,
            string key,
            IMemoryCache cache,
            Func<string, Task> Send)
        {
            var endpoint = new LeaderboardEndpoint(bracket, locale, key);
            var requestor = new BattleNetService();
            var leaderboard = new List<LadderEntry>();
            var request = new QueueDodge.Models.BattleNetRequest()
            {
                Bracket = bracket,
                Locale = locale.ToString(),
                RegionID = (int)region,
                RequestDate = DateTime.Now,
                RequestType = "leaderboard",
                Url = requestor.GetUri(endpoint, region).ToString(),
                Duration = 0
            };

            var addedRequest = data.BattleNetRequests.Add(request).Entity;
            data.SaveChanges();

            var json = requestor.Get(endpoint, region).Result;

            var ladder = JsonConvert.DeserializeObject<Leaderboard>(json);



            foreach(var entry in ladder.Rows)
            {
                var ladderEntry = new LadderEntry(entry, addedRequest);
                leaderboard.Add(ladderEntry);
                CompareWithCache(ladderEntry, cache, Send);
            };

            cache.Set(region + ":" + bracket, leaderboard);
        }
Ejemplo n.º 4
0
        private void Realms()
        {
            var service  = new BattleNetService <Leaderboard>();
            var endpoint = new LeaderboardEndpoint("3v3", Locale.en_us, options.apiKey);
            var data     = service.Get(endpoint, BattleDotSwag.Region.us).Result;
            var region   = queueDodge.Regions.Where(p => p.ID == 1).Single();

            var realms = new List <Realm>();

            foreach (var row in data.Rows)
            {
                var newRealm = realms.Where(p => p.ID == row.RealmID).Count() == 0;

                if (newRealm && row.RealmID > 0)
                {
                    var realm = new Realm(row.RealmID, row.RealmName, row.RealmSlug, region.ID);
                    realms.Add(realm);
                }
            }

            queueDodge.Realms.AddRange(realms);
            queueDodge.SaveChanges();
        }
Ejemplo n.º 5
0
 public UsersController(BattleNetService armory, UserService userService)
 {
     this.armory      = armory;
     this.userService = userService;
 }
 public ConquestIntegrationService()
 {
     conquestCapService = new BattleNetService<ConquestCap>();
     data = new QueueDodgeDB();
     requests = new RequestService(data);
 }