Ejemplo n.º 1
0
        public static AvgTimeLine Mapper(MySqlDataReader reader)
        {
            var a = new AvgTimeLine();

            a.ChampionId   = reader.GetInt32("IdChamp");
            a.Rank         = reader.GetString("Rank");
            a.Role         = reader.GetString("Role");
            a.AvgAp        = reader.GetInt32("AvgAp");
            a.AvgMr        = reader.GetInt32("AvgMr");
            a.AvgGoldSpent = reader.GetInt32("AvgGoldSpent");
            a.Items        = reader.GetString("MostFrequentItems");
            a.Minute       = reader.GetInt32("Minute");
            a.TotalGames   = reader.GetInt32("TotalGames");
            a.Patch        = reader.GetString("Patch");
            //a.Items = new List<Item>();
            //foreach (var itemId in itemsIds.Split(new []{'|'}, StringSplitOptions.RemoveEmptyEntries))
            //{
            //    if (a.Patch.Contains("5.11"))
            //        a.Items.Add(ItemsCache.GetItemV511(int.Parse(itemId)));
            //    else
            //        a.Items.Add(ItemsCache.GetItemV514(int.Parse(itemId)));
            //}

            return(a);
        }
Ejemplo n.º 2
0
        public static AvgTimeLine Mapper(MySqlDataReader reader)
        {
            var a = new AvgTimeLine();
            a.ChampionId = reader.GetInt32("IdChamp");
            a.Rank = reader.GetString("Rank");
            a.Role = reader.GetString("Role");
            a.AvgAp = reader.GetInt32("AvgAp");
            a.AvgMr = reader.GetInt32("AvgMr");
            a.AvgGoldSpent = reader.GetInt32("AvgGoldSpent");
            a.Items = reader.GetString("MostFrequentItems");
            a.Minute = reader.GetInt32("Minute");
            a.TotalGames = reader.GetInt32("TotalGames");
            a.Patch = reader.GetString("Patch");
            //a.Items = new List<Item>();
            //foreach (var itemId in itemsIds.Split(new []{'|'}, StringSplitOptions.RemoveEmptyEntries))
            //{
            //    if (a.Patch.Contains("5.11"))
            //        a.Items.Add(ItemsCache.GetItemV511(int.Parse(itemId)));
            //    else
            //        a.Items.Add(ItemsCache.GetItemV514(int.Parse(itemId)));
            //}

            return a;
        }
Ejemplo n.º 3
0
        public void SaveAvgTimeLine(AvgTimeLine av)
        {
            MySqlCommand cmd = new MySqlCommand("insert_avg_timeline", connection);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add(new MySqlParameter("pIdChamp",av.ChampionId));
            cmd.Parameters.Add(new MySqlParameter("pRank", av.Rank));
            cmd.Parameters.Add(new MySqlParameter("pRole", av.Role));
            cmd.Parameters.Add(new MySqlParameter("pAvgAp", av.AvgAp));
            cmd.Parameters.Add(new MySqlParameter("pAvgMr", av.AvgMr));
            cmd.Parameters.Add(new MySqlParameter("pAvgGoldSpent", av.AvgGoldSpent));
            cmd.Parameters.Add(new MySqlParameter("pMostFrequentItems", av.Items));
            cmd.Parameters.Add(new MySqlParameter("pMinute", av.Minute));
            cmd.Parameters.Add(new MySqlParameter("pTotalGames", av.TotalGames));
            cmd.Parameters.Add(new MySqlParameter("pPatch", av.Patch));

            cmd.ExecuteNonQuery();
        }
Ejemplo n.º 4
0
        private static void ProcessAverages()
        {
            var champs = Data.Entidades.Caches.ChampionsCache.Get();
            foreach (var champ in champs)
            {
                IList<ApTimeLine> timelines;
                using (var data = new Data.SqlData())
                {
                    timelines = data.GetTimelines(champ.Id);
                }

                var cleanTimelines = new List<ApTimeLine>();
                var matchgroups = timelines.GroupBy(t => t.MatchId);
                int j = 0;
                foreach (var match in matchgroups)
                {
                    var participantgroups = match.OrderBy(m => m.Minute).GroupBy(m => m.PlayerId);
                    foreach (var player in participantgroups)
                    {
                        for (int i = 0; i < player.Count() - 1; i++)
                        {

                            cleanTimelines.Add(player.ElementAt(i));

                            while (player.ElementAt(i + 1).Minute > cleanTimelines.ElementAt(j).Minute + 1)
                            {
                                var newmin = new ApTimeLine(cleanTimelines.ElementAt(j));
                                newmin.Minute++;
                                cleanTimelines.Add(newmin);
                                j++;
                            }
                            j++;
                        }
                    }
                }

                var patchgroups = cleanTimelines.GroupBy(t => t.Patch);
                foreach (var patch in patchgroups)
                {
                    var rankgroups = patch.GroupBy(p => p.Rank);
                    foreach (var rank in rankgroups)
                    {
                        var rolegroups = rank.GroupBy(p => Data.Entidades.EnumHelpers.GetRealRoles(p.Role, p.Lane));
                        foreach (var role in rolegroups)
                        {
                            var minutegroups = role.OrderBy(m => m.Minute).GroupBy(t => t.Minute);
                            foreach (var minute in minutegroups)
                            {
                                var items = new List<Item>();
                                foreach (var match in minute)
                                {
                                    match.Items = Data.Entidades.Caches.ItemsCache.RemoveTrinkets(match.Items);
                                    foreach (var item in match.Items)
                                    {
                                        items.Add(item);
                                    }
                                }

                                var q = from x in items
                                        group x by x into g
                                        let count = g.Count()
                                        orderby count descending
                                        select new { Value = g.Key, Count = count };

                                var e = q.OrderByDescending(i => i.Count).Take(10);

                                var avgt = new AvgTimeLine();
                                avgt.Minute = minute.Key;
                                avgt.ChampionId = champ.Id;
                                avgt.AvgAp = minute.Average(m => m.TotalAp);
                                avgt.AvgMr = minute.Average(m => m.TotalMr);
                                avgt.Patch = patch.Key;
                                avgt.AvgGoldSpent = (int)minute.Average(m => m.GoldSpent);
                                avgt.Rank = rank.Key;
                                avgt.Role = role.Key.ToString();
                                avgt.TotalGames = minute.Count();
                                avgt.Items = string.Join("|", e.Select(i => string.Format("{0}:{1}", i.Value.Id, i.Count)));
                                using (var data = new Data.SqlData())
                                {
                                    data.SaveAvgTimeLine(avgt);
                                }
                            }
                        }
                    }
                }
            }
        }