コード例 #1
0
        // PUT api/Player/5
        public IHttpActionResult PutPlayer(int id, Player player)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != player.PlayerId)
            {
                return(BadRequest());
            }

            db.Entry(player).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!PlayerExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #2
0
ファイル: BattleController.cs プロジェクト: rglos/WotKitWeb
        // PUT api/Battle/5
        public IHttpActionResult PutBattle(int id, Battle battle)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != battle.BattleId)
            {
                return(BadRequest());
            }

            db.Entry(battle).State = EntityState.Modified;

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!BattleExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #3
0
        private Player PostPlayer(Player player)
        {
            var serverPlayer = db.Players.Where(x => x.AccountDBID == player.AccountDBID).SingleOrDefault();

            if (serverPlayer == null)
            {
                db.Players.Add(player);
                db.SaveChanges();
                serverPlayer = player;
            }
            return(serverPlayer);
        }
コード例 #4
0
ファイル: BattlesController.cs プロジェクト: rglos/WotKitWeb
        public ActionResult StartNewSession(string name)
        {
            var playerBattles = db.PlayerBattles.Where(x => x.Player.Name == name);

            db.PlayerBattles.RemoveRange(playerBattles);
            db.SaveChanges();

            var battles = db.Battles.Where(x => x.PlayerBattles.Count == 0);

            db.Battles.RemoveRange(battles);
            db.SaveChanges();

            TempData["Message"] = "Session successfully reset";
            return(RedirectToAction("Recent", "Battles", new { id = name }));
        }
コード例 #5
0
        public void LoadClanDetails(int clanId)
        {
            using (WotKitEntities db = new WotKitEntities())
            {
                // Get the clan and load it
                var clan = _wargamingApiService.GetClanDetails(clanId);

                // TODO: var clanInDb = Upsert(clan); // Insert or update the clan
                var clanInDb = db.Clans.Where(x => x.ClanId == clanId).SingleOrDefault();
                if (clanInDb == null)
                {
                    // Add the clan
                    clanInDb = new Clan()
                    {
                        ClanId        = clanId,
                        Abbreviation  = clan.Abbreviation,
                        Name          = clan.Name,
                        EmblemBWTank  = clan.EmblemBWTank,
                        EmblemLarge   = clan.EmblemLarge,
                        EmblemMedium  = clan.EmblemMedium,
                        EmblemSmall   = clan.EmblemSmall,
                        CreatedAtDate = clan.CreatedAtDate,
                        UpdatedAtDate = clan.UpdatedAtDate
                    };
                    db.Clans.Add(clanInDb);
                    db.SaveChanges();
                }
                else
                {
                    // Update the clan?
                    clanInDb.UpdatedAtDate = clan.UpdatedAtDate;
                }

                // Now using the members load them
                DateTime now = DateTime.UtcNow;
                foreach (var member in clan.Members)
                {
                    // Is this dude even in the database?
                    var player = db.Players.Where(x => x.AccountDBID == member.AccountId).SingleOrDefault();
                    if (player == null)
                    {
                        // Add em
                        player = new Player()
                        {
                            AccountDBID = member.AccountId,
                            Name        = member.AccountName,
                        };
                        db.Players.Add(player);
                    }
                    db.SaveChanges();

                    // Go get details for this player
                    var playerPersonalData = _wargamingApiService.GetPlayerPersonalData(player.AccountDBID);

                    // Now we add a record for this batch taking a count of their battles
                    db.ClanDetails.Add(new ClanDetail()
                    {
                        AsOfDate       = now,
                        AllBattles     = playerPersonalData.All.Battles,
                        ClanId         = clanInDb.ClanId,
                        ClanBattles    = playerPersonalData.Clan.Battles,
                        PlayerId       = player.PlayerId,
                        CompanyBattles = playerPersonalData.Company.Battles,
                        Role           = member.Role,
                        Rolei18n       = member.Rolei18n
                    });
                }
                db.SaveChanges();
            }
        }