示例#1
0
        public ActionResult StartNewAge(Age age)
        {
            age.StartTime = DateTime.Now;
            Clans             jclans  = new Clans();
            List <PlayerStat> players = new List <PlayerStat>();
            List <Clan>       clans   = new List <Clan>();

            System.Net.WebClient wc = new System.Net.WebClient();
            wc.Encoding = System.Text.Encoding.UTF8;
            string json = wc.DownloadString("http://berserktcg.ru/api/export/clans.json");

            json   = "{\"clans\":" + json + "}";
            jclans = JsonConvert.DeserializeObject <Clans>(json);
            foreach (var clan in jclans.clans)
            {
                json = wc.DownloadString("http://berserktcg.ru/api/export/clan/" + clan.id + ".json");
                JsonClan clann = JsonConvert.DeserializeObject <JsonClan>(json);
                var      mclan = repository.Clans.FirstOrDefault(x => x.ID == clann.id);
                if (mclan == null)
                {
                    mclan = new Clan(clann);
                    clans.Add(mclan);
                }
                foreach (var jsPlayer in clann.players)
                {
                    players.Add(new PlayerStat(jsPlayer, mclan, age.StartTime));
                }
            }
            repository.SaveAge(age);
            repository.SaveClans(clans);
            repository.SavePlayers(players);
            return(View());
        }
示例#2
0
        public static void StartOP()
        {
            var repository = new EFPlayerRepository();
            List <PlayerStat> playerStats = new List <PlayerStat>();
            var ar  = new int[] { 92 };
            var arb = new int[] { 98 };

            for (int ii = 0; ii < ar.Length; ii++)
            {
                int xx = arb[ii];
                int yy = ar[ii];
                var cl = repository.Clans.FirstOrDefault(x => x.ClanID == xx);
                IEnumerable <PlayerStat> pls = repository.PlayerStats.Where(x => x.clan.ClanID == xx);

                foreach (var i in pls)
                {
                    i.clan = repository.Clans.FirstOrDefault(x => x.ClanID == yy);
                    playerStats.Add(i);
                }
            }
            repository.SavePlayers(playerStats);
        }
示例#3
0
        public static void Start()
        {
            var repository = new EFPlayerRepository();
            var time       = DateTime.Today;
            var lastAge    = repository.Ages.OrderByDescending(x => x.StartTime).FirstOrDefault();

            if (lastAge != null)
            {
                var oldTime  = DateTime.Today.AddDays(-14);
                var oldStats = repository.PlayerStats.Where(x => x.Time < oldTime && x.Time != lastAge.StartTime).ToList();
                repository.DeleteStats(oldStats);
                var                  StartStats  = repository.PlayerStats.Where(x => x.Time == lastAge.StartTime);
                var                  lastStats   = repository.PlayerStats.Where(x => x.Time == time);
                Clans                jclans      = new Clans();
                List <PlayerStat>    playerStats = new List <PlayerStat>();
                List <Clan>          clans       = new List <Clan>();
                System.Net.WebClient wc          = new System.Net.WebClient();
                wc.Encoding = System.Text.Encoding.UTF8;
                string json = wc.DownloadString("http://berserktcg.ru/api/export/clans.json");
                json   = "{\"clans\":" + json + "}";
                jclans = JsonConvert.DeserializeObject <Clans>(json);
                foreach (var clan in jclans.clans)
                {
                    json = wc.DownloadString("http://berserktcg.ru/api/export/clan/" + clan.id + ".json");
                    JsonClan clann = JsonConvert.DeserializeObject <JsonClan>(json);
                    var      mclan = repository.Clans.FirstOrDefault(x => x.ID == clann.id);
                    if (mclan == null)
                    {
                        mclan = new Clan(clann);
                        clans.Add(mclan);
                    }
                    foreach (var jsPlayer in clann.players)
                    {
                        var startStat  = StartStats.FirstOrDefault(x => x.ID == jsPlayer.id);
                        var playerStat = lastStats.FirstOrDefault(x => x.ID == jsPlayer.id);
                        if (playerStat == null)
                        {
                            playerStat = new PlayerStat(jsPlayer, mclan, time);
                        }

                        if (startStat != null)
                        {
                            playerStat.frags     = jsPlayer.frags;
                            playerStat.deaths    = jsPlayer.deaths;
                            playerStat.curFrags  = jsPlayer.frags - startStat.frags;
                            playerStat.curDeaths = jsPlayer.deaths - startStat.deaths;
                            playerStat.clan      = mclan;
                        }
                        else
                        {
                            startStat = new PlayerStat(jsPlayer, mclan, lastAge.StartTime);
                            playerStats.Add(startStat);
                        }
                        playerStats.Add(playerStat);
                    }
                }
                repository.SaveClans(clans);
                repository.SavePlayers(playerStats);
                Log.Write();
            }
        }