Exemplo n.º 1
0
        public StaticData GetStaticData()
        {
            //requests to static endpoint are capped, so always check for caching of data
            if (cache.DoesFileExist())
            {
                var temp = cache.CacheGet();
                return(temp);
            }
            var staticData = new StaticData();
            var factory    = new SummonerFactory();

            staticData.Champions = factory.GetChampions();
            staticData.Items     = factory.GetItems();
            staticData.Runes     = factory.GetRunes();
            staticData.Masteries = factory.GetMasteries();
            staticData.Maps      = factory.GetMaps();
            cache.CacheSet(staticData);
            return(staticData);
        }
Exemplo n.º 2
0
        public MatchModel GetMatchModel(string id, string summoner)
        {
            var factory    = new SummonerFactory();
            var staticData = GetStaticData();
            var matchModel = new MatchModel();
            var match      = factory.GetMatchById(id);

            var map = new MapDetails();

            if (staticData.Maps.Map.TryGetValue(match.MapId.ToString(), out map))
            {
                matchModel.Map = map.Name;
            }
            var tempChampion = new Champion();

            matchModel.GameLength   = match.GameDuration.ToString();
            matchModel.Players      = match.Participants;
            matchModel.SummonerName = summoner;

            return(matchModel);
        }
Exemplo n.º 3
0
        //this gets called on any intial summoner search
        public Matches GetMatchHistory(string query)
        {
            var factory    = new SummonerFactory();
            var summoner   = new Summoner();
            var staticData = new StaticData();

            staticData = GetStaticData();
            summoner   = factory.GetSummonerByName(query);
            var matches   = factory.GetMatchesById(summoner.AccountId.ToString());
            var champions = staticData.Champions;

            foreach (MatchReference match in matches.MatchStats)
            {
                var tempChampion = new Champion();
                if (champions.ChampionsList.TryGetValue(match.Champion.ToString(), out tempChampion))
                {
                    match.ChampionName = tempChampion.Name;
                }
            }
            matches = GetMatchDetails(query, matches, summoner.Id);
            return(matches);
        }
Exemplo n.º 4
0
        //using this to grab match details and put them directly into the Matches object
        public Matches GetMatchDetails(string query, Matches matches, long summonerId)
        {
            var factory = new SummonerFactory();

            foreach (var match in matches.MatchStats)
            {
                match.MatchDetails = factory.GetMatchInfoById(match.GameId.ToString());

                //doing a time conversion
                TimeSpan gameTime = TimeSpan.FromSeconds(match.MatchDetails.GameDuration);
                match.MatchDetails.Time = gameTime.ToString();


                //probably going to want to modularize this at some point: getting the kda here
                var     identity = match.MatchDetails.Identities.Where(x => x.Player.SummonerId == summonerId).FirstOrDefault();
                var     stats    = match.MatchDetails.Participants.Where(x => x.ParticipantId == identity.ParticipantId).FirstOrDefault();
                var     kdaLong  = stats.Stats.Kills.ToString() + "/" + stats.Stats.Deaths.ToString() + "/" + stats.Stats.Assists.ToString();
                decimal kdaShort = Math.Round((Convert.ToDecimal(stats.Stats.Kills) + Convert.ToDecimal(stats.Stats.Assists)) / stats.Stats.Deaths, 2);
                match.MatchDetails.KdaLong  = kdaLong;
                match.MatchDetails.KdaShort = kdaShort.ToString();
            }

            return(matches);
        }