private bool ReadGameResponse(string data) { // Check if error code was returned, otherwise try to decode form Json int errorCode; if (Int32.TryParse(data, out errorCode)) { if ((ResponseEnums.GetLastGameResponse)errorCode == ResponseEnums.GetLastGameResponse.Error_NoData) { return(true); } else { Debug.Log(Enum.GetName(typeof(ResponseEnums.GetLastGameResponse), errorCode)); return(false); } } else { PlayerGameStats gameStats = JsonUtility.ValidateJsonData <PlayerGameStats>(data); if (gameStats != default(PlayerGameStats)) { lastGameStats = gameStats; return(true); } else { Debug.LogError("Failed to deserialize as GameStats: " + data); return(false); } } }
public void Get(PlayerGameLogs players, string gameid) { Dictionary <string, string> values = new Dictionary <string, string>() { { "@game", gameid } }; List <string[]> results = SelectProc("GetAllPlayerGameStats", values); Player player = null; PlayerGameStats gameStats = null; foreach (string[] result in results) { if (player == null || player.player.playerid != result[0]) { if (player != null) { players.playergamelogs.Add(player); } player = new Player(); player.gameLogs = new List <PlayerGameStats>(); player.player.playerid = result[0]; player.player.fname = result[1]; player.player.lname = result[2]; player.player.number = result[3]; player.player.position = result[4]; player.team.abbr = result[5]; player.team.city = result[6]; player.team.name = result[7]; } gameStats = new PlayerGameStats(); gameStats.game.gameid = result[8]; gameStats.game.date = result[9]; gameStats.game.time = result[10]; gameStats.game.homeTeam.abbr = result[11]; gameStats.game.homeTeam.city = result[12]; gameStats.game.homeTeam.name = result[13]; gameStats.game.awayTeam.abbr = result[14]; gameStats.game.awayTeam.city = result[15]; gameStats.game.awayTeam.name = result[16]; gameStats.stats.passAtt = result[17]; gameStats.stats.passComp = result[18]; gameStats.stats.passYds = result[19]; gameStats.stats.passTds = result[20]; gameStats.stats.intc = result[21]; gameStats.stats.rushAtt = result[22]; gameStats.stats.rushYds = result[23]; gameStats.stats.rushTds = result[24]; gameStats.stats.fum = result[25]; gameStats.stats.rec = result[26]; gameStats.stats.recYds = result[27]; gameStats.stats.recTds = result[28]; gameStats.stats.fgAtt = result[29]; gameStats.stats.fgMade = result[30]; gameStats.stats.xpAtt = result[31]; gameStats.stats.xpMade = result[32]; gameStats.stats.fgPct = result[33]; gameStats.stats.xpPct = result[34]; player.gameLogs.Add(gameStats); } }
private static GameData CreateTestDataSet() { var dataSet = new GameData { GameDuration = 50, GameHost = "AGameHost", Winner = "NewPlayer" }; dataSet.GameMoves.Add(new GameMoveDataPoint("Player", 5, MoveType.Peel)); var stats = new PlayerGameStats() { AvgTimeBetweenDumps = 5, AvgTimeBetweenPeels = 5, NumberOfDumps = 3, NumberOfPeels = 3, PerformedFirstPeel = true, IsWinner = false, RawGameData = new List <GameMoveDataPoint>() { new GameMoveDataPoint("Me", 1, MoveType.Peel) } }; dataSet.PlayerDictionary.Add("NewPlayer", stats); return(dataSet); }
private void statsFetcher_PlayerGameDiscoveredEvent(object sender, PlayerGameStats pgs) { this.list_results.AddObject(pgs); this.PeformOnUI(delegate() { this.statusBar.Text += "."; }); }
public void Get(Player player) { try { Dictionary <string, string> values = new Dictionary <string, string>() { { "@PlayerID", player.player.playerid } }; List <string[]> results = SelectProc("GetPlayerGameLogs", values); player.gameLogs = new List <PlayerGameStats>(); player.player.playerid = results[0][0]; player.player.fname = results[0][1]; player.player.lname = results[0][2]; player.player.number = results[0][3]; player.player.position = results[0][4]; player.team.abbr = results[0][5]; player.team.city = results[0][6]; player.team.name = results[0][7]; PlayerGameStats gameStats; foreach (string[] result in results) { gameStats = new PlayerGameStats(); gameStats.game.gameid = result[8]; gameStats.game.date = result[9]; gameStats.game.time = result[10]; gameStats.game.homeTeam.abbr = result[11]; gameStats.game.homeTeam.city = result[12]; gameStats.game.homeTeam.name = result[13]; gameStats.game.awayTeam.abbr = result[14]; gameStats.game.awayTeam.city = result[15]; gameStats.game.awayTeam.name = result[16]; gameStats.stats.passAtt = result[17]; gameStats.stats.passComp = result[18]; gameStats.stats.passYds = result[19]; gameStats.stats.passTds = result[20]; gameStats.stats.intc = result[21]; gameStats.stats.rushAtt = result[22]; gameStats.stats.rushYds = result[23]; gameStats.stats.rushTds = result[24]; gameStats.stats.fum = result[25]; gameStats.stats.rec = result[26]; gameStats.stats.recYds = result[27]; gameStats.stats.recTds = result[28]; gameStats.stats.fgAtt = result[29]; gameStats.stats.fgMade = result[30]; gameStats.stats.xpAtt = result[31]; gameStats.stats.xpMade = result[32]; gameStats.stats.fgPct = result[33]; gameStats.stats.xpPct = result[34]; player.gameLogs.Add(gameStats); } } catch (Exception e) { throw new Exception(e.Message, e); } }
public void Get(Player player, string gameid) { if (player.gameLogs == null) { player.gameLogs = new List <PlayerGameStats>(); } Dictionary <string, string> values = new Dictionary <string, string>(); values.Add("@Playerid", player.player.playerid); values.Add("@Gameid", gameid); try { string[] result = SelectProc("GetPlayerGameStats", values)[0]; PlayerGameStats gameStats = new PlayerGameStats(); player.player.playerid = result[0]; player.player.fname = result[1]; player.player.lname = result[2]; player.player.number = result[3]; player.player.position = result[4]; player.team.abbr = result[5]; player.team.city = result[6]; player.team.name = result[7]; gameStats.game.gameid = result[8]; gameStats.game.date = result[9]; gameStats.game.time = result[10]; gameStats.game.homeTeam.abbr = result[11]; gameStats.game.homeTeam.city = result[12]; gameStats.game.homeTeam.name = result[13]; gameStats.game.awayTeam.abbr = result[14]; gameStats.game.awayTeam.city = result[15]; gameStats.game.awayTeam.name = result[16]; gameStats.stats.passAtt = result[17]; gameStats.stats.passComp = result[18]; gameStats.stats.passYds = result[19]; gameStats.stats.passTds = result[20]; gameStats.stats.intc = result[21]; gameStats.stats.rushAtt = result[22]; gameStats.stats.rushYds = result[23]; gameStats.stats.rushTds = result[24]; gameStats.stats.fum = result[25]; gameStats.stats.rec = result[26]; gameStats.stats.recYds = result[27]; gameStats.stats.recTds = result[28]; gameStats.stats.fgAtt = result[29]; gameStats.stats.fgMade = result[30]; gameStats.stats.xpAtt = result[31]; gameStats.stats.xpMade = result[32]; gameStats.stats.fgPct = result[33]; gameStats.stats.xpPct = result[34]; player.gameLogs.Add(gameStats); } catch (Exception e) { throw new Exception(e.Message, e); } }
public void Initialize() { _testGameMoveDataPoint = new GameMoveDataPoint { MoveType = MoveType.Dump, Player = "NewPlayer", TimeOfMove = 5 }; _playerGameStats = new PlayerGameStats { AvgTimeBetweenDumps = 10, AvgTimeBetweenPeels = 5, IsWinner = true, NumberOfDumps = 3, NumberOfPeels = 0, PerformedFirstPeel = false, RawGameData = new List <GameMoveDataPoint>() { _testGameMoveDataPoint, _testGameMoveDataPoint, _testGameMoveDataPoint } }; _gameData = new GameData { GameDuration = 10, GameHost = "GameHost", GameStartTime = DateTime.Now, Winner = "NewPlayer" }; _gameData.GameMoves.Add(_testGameMoveDataPoint); _gameData.GameMoves.Add(_testGameMoveDataPoint); _gameData.PlayerDictionary.Add("NewPlayer", _playerGameStats); _gameData.PlayerDictionary.Add("NewPlayer2", _playerGameStats); _gameDataList = new GameDataList(); _gameDataList._GameData.Add(_gameData); _gameDataList._GameData.Add(_gameData); _stringPacketV1 = new PacketV1 { PacketType = PacketType.c_QueryIfAliasAvailable, Data = "Mobius", Recipients = null, Sender = "*****@*****.**" }; _IBinarySerializablePacketV1 = new PacketV1 { PacketType = PacketType.c_UploadGameData, Data = _gameData, Recipients = null, Sender = "*****@*****.**" }; _packetBase = new PacketBase { PacketVersion = PacketVersion.Version1, Data = _stringPacketV1 }; }
public void PlayerWon(Player winner) { if (winner != null) { PlayerGameStats stats = winner.GetComponent <PlayerGameStats>(); if (stats != null) { stats.RoundWins++; } } }
public int GetRoundsWonCount(Player player) { int roundWins = 0; PlayerGameStats stats = player.GetComponent <PlayerGameStats>(); if (stats != null) { roundWins = stats.RoundWins; } return(roundWins); }
public void OnPlayerDeath(Player player, Player killer) { PlayerGameStats stats = player.GetComponent <PlayerGameStats>(); stats.Deaths++; if (killer != null) { PlayerGameStats killerStats = player.GetComponent <PlayerGameStats>(); killerStats.Kills++; } }
public void SetData(List <Player> players) { Clear(); // add a header Instantiate <RoundResultsRow>(rowPrefab, tableParent); // one row per player foreach (Player player in players) { RoundResultsRow row = Instantiate <RoundResultsRow>(rowPrefab, tableParent); PlayerGameStats stats = player.GetComponent <PlayerGameStats>(); row.SetData(player.Name, stats.Kills, stats.Deaths, stats.RoundWins); } }
private void ProcessGameReport(RankedGameReport report) { List <PlayerGameStats> pubplayers = new List <PlayerGameStats>(); foreach (RankedGameReport.PlayerStatLine p in report.PlayerStats) { ApplicationUser user = _db.UsersWithPlayer().FirstOrDefault(x => x.UserName == p.Name); if (user == null) { throw new InvalidOperationException("tried to report game with unregistered players."); } PlayerGameStats pp = new PlayerGameStats() { Player = user.PlayerStats, Team = p.Team == "Red" ? HqmTeam.red : HqmTeam.blue, Goals = p.Goals, Assists = p.Assists, RatingMean = user.PlayerStats.Rating.Mean, RatingStandardDeviation = user.PlayerStats.Rating.StandardDeviation }; pubplayers.Add(pp); } Game game = new Game() { GameId = new Guid(), playerStats = pubplayers, redScore = report.RedScore, blueScore = report.BlueScore, date = report.Date }; _db.AddGame(game); //apply new ratings foreach (KeyValuePair <Player, Rating> kvp in game.GetNewRatings()) { kvp.Key.Rating.Mean = kvp.Value.Mean; kvp.Key.Rating.StandardDeviation = kvp.Value.StandardDeviation; } _db.SaveChanges(); _leaderboards.FlushLeaderboards(); }
public static int GetGameExperienceEarned(PlayerGameStats stats) { // Add 1000 experience for a playing the game. int exp = 1000; if (stats.IsWinner) { exp += 500; } if (stats.PerformedFirstPeel) { exp += 50; } exp += stats.NumberOfPeels * 20; return(exp); }
public static int InsertPlayer(PlayerGameStats p) { DataAccessHelper dataAccess = new DataAccessHelper(""); //string sqlStatement = "EXEC spCreateSchedule @scheduleDate, @season, @totalItems, @totalEvents, @totalGames, @totalMatches, @rawJson, @scheduleID OUT"; string sqlStatement = "spCreatePlayer"; List <SQLParameter> sqlParameterList = new List <SQLParameter>(); // Create the list of input parameters sqlParameterList.Add(new SQLParameter("@playerId", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.playerID, "number"), "in")); sqlParameterList.Add(new SQLParameter("@firstName", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.firstName, "string"), "in")); sqlParameterList.Add(new SQLParameter("@lastName", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.lastName, "string"), "in")); sqlParameterList.Add(new SQLParameter("@primaryNumber", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <int>(p.primaryNumber, "number"), "in")); sqlParameterList.Add(new SQLParameter("@birthDate", System.Data.SqlDbType.Date, DataAccessHelper.SafeOutput <string>(p.birthDate, "string"), "in")); sqlParameterList.Add(new SQLParameter("@currentAge", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.currentAge, "number"), "in")); sqlParameterList.Add(new SQLParameter("@birthCity", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.birthCity, "string"), "in")); sqlParameterList.Add(new SQLParameter("@birthStateProvince", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.birthStateProvince, "string"), "in")); sqlParameterList.Add(new SQLParameter("@birthCountry", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.birthCountry, "string"), "in")); sqlParameterList.Add(new SQLParameter("@nationality", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.nationality, "string"), "in")); sqlParameterList.Add(new SQLParameter("@height", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.height, "number"), "in")); sqlParameterList.Add(new SQLParameter("@weight", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.weight, "number"), "in")); sqlParameterList.Add(new SQLParameter("@active", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.active, "string"), "in")); sqlParameterList.Add(new SQLParameter("@alternateCaptain", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.alternateCaptain, "string"), "in")); sqlParameterList.Add(new SQLParameter("@captain", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.captain, "string"), "in")); sqlParameterList.Add(new SQLParameter("@rookie", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.rookie, "string"), "in")); sqlParameterList.Add(new SQLParameter("@shootsCatches", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.shootsCatches, "string"), "in")); sqlParameterList.Add(new SQLParameter("@rosterStatus", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.rosterStatus, "string"), "in")); sqlParameterList.Add(new SQLParameter("@currentTeamID", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.currentTeamID, "string"), "in")); sqlParameterList.Add(new SQLParameter("@primaryPositionCode", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.primaryPositionCode, "string"), "in")); sqlParameterList.Add(new SQLParameter("@primaryPositionName", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.primaryPositionName, "string"), "in")); sqlParameterList.Add(new SQLParameter("@primaryPositionType", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.primaryPositionType, "string"), "in")); sqlParameterList.Add(new SQLParameter("@primaryPositionAbbr", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.primaryPositionAbbr, "string"), "in")); //sqlParameterList.Add(new SQLParameter("@rawJson", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput<string>("NULL", "string"), "in")); // Create the output parameter sqlParameterList.Add(new SQLParameter("@playerIdentity", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Convert.ToInt32("0"), "number"), "out")); return(dataAccess.ExecuteParameterizedQuery(sqlParameterList, sqlStatement)); }
public Player ConstructGameLogs(JArray games) { Player currentPlayer = new Player((string)games[0]["player"]["ID"]); currentPlayer.team.abbr = (string)games[0]["team"]["Abbreviation"]; currentPlayer.gameLogs = new List <PlayerGameStats>(); foreach (JToken game in games) { PlayerStats currentStats = new PlayerStats(); Game currentGame = currentGame = new Game((string)game["game"]["id"]); if (game["player"]["Position"].Equals("K")) { currentStats.fgAtt = (string)game["stats"]["FgAtt"]["#text"]; currentStats.fgMade = (string)game["stats"]["FgMade"]["#text"]; currentStats.xpAtt = (string)game["stats"]["XpAtt"]["#text"]; currentStats.xpMade = (string)game["stats"]["XpMade"]["#text"]; currentStats.fgPct = (string)game["stats"]["FgPct"]["#text"]; currentStats.xpPct = (string)game["stats"]["XpPct"]["#text"]; } else { currentStats.passAtt = (string)game["stats"]["PassAttempts"]["#text"]; currentStats.passComp = (string)game["stats"]["PassCompletions"]["#text"]; currentStats.passYds = (string)game["stats"]["PassYards"]["#text"]; currentStats.passTds = (string)game["stats"]["PassTD"]["#text"]; currentStats.intc = (string)game["stats"]["PassInt"]["#text"]; currentStats.rushAtt = (string)game["stats"]["RushAttempts"]["#text"]; currentStats.rushYds = (string)game["stats"]["RushYards"]["#text"]; currentStats.rushTds = (string)game["stats"]["RushTD"]["#text"]; currentStats.fum = (string)game["stats"]["RushFumbles"]["#text"]; currentStats.rec = (string)game["stats"]["Receptions"]["#text"]; currentStats.recYds = (string)game["stats"]["RecYards"]["#text"]; currentStats.recTds = (string)game["stats"]["RecTD"]["#text"]; } PlayerGameStats currentGameStats = new PlayerGameStats(currentGame, currentStats); currentPlayer.gameLogs.Add(currentGameStats); } return(currentPlayer); }
public void OnDeath() { Unit damagingUnit = lastDamageEvent.DamageSource != null ? lastDamageEvent.DamageSource.DamagingUnit : null; if (damagingUnit != null) { killedBy = damagingUnit; } else { // assume lava kill, by rule whoever pushed this unit last gets the kill killedBy = movement.LastForceApplier; } if (killedBy != null && killedBy != unit) { Player player = killedBy.Owner; PlayerGameStats playerGameStats = player.GetComponent <PlayerGameStats>(); playerGameStats.Kills++; Debug.LogFormat("{0} killed {1}", killedBy, unit); } }
public static object TransformPersonalGame(PlayerGameStats playerStats) { RiotJsTransformer.TransformedPersonalGame transformedPersonalGame = new RiotJsTransformer.TransformedPersonalGame() { Id = (int)playerStats.GameId, Length = -1, MapId = (int)playerStats.GameMapId, Mode = playerStats.GameMode, Queue = playerStats.QueueType, Started = playerStats.CreateDate, Type = playerStats.QueueType, Name = string.Empty, AccountId = (long)playerStats.UserId, ChampionId = (int)playerStats.ChampionId, Spell1 = (int)playerStats.Spell1, Spell2 = (int)playerStats.Spell2, Left = playerStats.Leaver, Statistics = playerStats.Statistics.ToDictionary<RawStat, string, int>((RawStat x) => x.StatType, (RawStat x) => (int)x.Value), IpEarned = (int)playerStats.IpEarned, Map = GameJsApiService.GetGameMapFriendlyName((int)playerStats.GameMapId) }; return transformedPersonalGame; }
public GameResult(PlayerGameStats gameStatistics) { Statistics = gameStatistics.statistics; IsDominion = gameStatistics.gameMapId == 8; int unused = 0; Win = Load("WIN", ref unused); Level = Load("LEVEL"); Kills = Load("CHAMPIONS_KILLED"); Deaths = Load("NUM_DEATHS"); Assists = Load("ASSISTS"); GoldEarned = Load("GOLD_EARNED"); MinionsKilled = Load("MINIONS_KILLED"); Items = new int[6]; for (int i = 0; i < Items.Length; i++) { Items[i] = Load(string.Format("ITEM{0}", i)); } TotalDamageDealt = Load("TOTAL_DAMAGE_DEALT"); PhysicalDamageDealt = Load("PHYSICAL_DAMAGE_DEALT_PLAYER"); MagicalDamageDealt = Load("MAGIC_DAMAGE_DEALT_PLAYER"); TotalDamageDealtToChampions = Load("TOTAL_DAMAGE_DEALT_TO_CHAMPIONS"); PhysicalDamageDealtToChampions = Load("PHYSICAL_DAMAGE_DEALT_TO_CHAMPIONS"); MagicalDamageDealtToChampions = Load("MAGIC_DAMAGE_DEALT_TO_CHAMPIONS"); TotalDamageTaken = Load("TOTAL_DAMAGE_TAKEN"); PhysicalDamageTaken = Load("PHYSICAL_DAMAGE_TAKEN"); MagicalDamageTaken = Load("MAGIC_DAMAGE_TAKEN"); TotalHealingDone = Load("TOTAL_HEAL"); LargestCriticalStrike = Load("LARGEST_CRITICAL_STRIKE"); LargestMultiKill = Load("LARGEST_MULTI_KILL"); LargestKillingSpree = Load("LARGEST_KILLING_SPREE"); TimeSpentDead = Load("TOTAL_TIME_SPENT_DEAD"); SightWardsBought = Load("SIGHT_WARDS_BOUGHT_IN_GAME"); VisionWardsBought = Load("VISION_WARDS_BOUGHT_IN_GAME"); //Summoner's Rift and Twisted Treeline specific NeutralMinionsKilled = MaybeLoad("NEUTRAL_MINIONS_KILLED", false); TurretsDestroyed = MaybeLoad("TURRETS_KILLED", false); InhibitorsDestroyed = MaybeLoad("BARRACKS_KILLED", false); //Dominion specific NodesNeutralised = MaybeLoad("NODE_NEUTRALIZE", true); NodeNeutralisationAssists = MaybeLoad("NODE_NEUTRALIZE_ASSIST", true); NodesCaptured = MaybeLoad("NODE_CAPTURE", true); VictoryPoints = MaybeLoad("VICTORY_POINT_TOTAL", true); Objectives = MaybeLoad("TEAM_OBJECTIVE", true); TotalScore = MaybeLoad("TOTAL_PLAYER_SCORE", true); ObjectiveScore = MaybeLoad("OBJECTIVE_PLAYER_SCORE", true); CombatScore = MaybeLoad("COMBAT_PLAYER_SCORE", true); Rank = MaybeLoad("TOTAL_SCORE_RANK", true); }
void InsertGameResult(Summoner summoner, int gameId, int teamId, PlayerGameStats game, GameResult gameResult, DbConnection connection) { using (var insert = GetCommand(gameResult, connection)) { insert.SetFieldNames(InsertGameResultFields); insert.Set(gameId); insert.Set(teamId); insert.Set(summoner.Id); insert.Set(game.userServerPing); insert.Set(game.timeInQueue); insert.Set(game.premadeSize); insert.Set(game.experienceEarned); insert.Set(game.boostXpEarned); insert.Set(game.ipEarned); insert.Set(game.boostIpEarned); insert.Set(game.level); insert.Set(game.spell1); insert.Set(game.spell2); insert.Set(game.championId); insert.Set(game.skinName); insert.Set(game.skinIndex); insert.Set(gameResult.Level); insert.Set(gameResult.Kills); insert.Set(gameResult.Deaths); insert.Set(gameResult.Assists); insert.Set(gameResult.MinionsKilled); insert.Set(gameResult.GoldEarned); insert.Set(gameResult.TotalDamageDealt); insert.Set(gameResult.PhysicalDamageDealt); insert.Set(gameResult.MagicalDamageDealt); insert.Set(gameResult.TotalDamageTaken); insert.Set(gameResult.PhysicalDamageTaken); insert.Set(gameResult.MagicalDamageTaken); insert.Set(gameResult.TotalHealingDone); insert.Set(gameResult.TimeSpentDead); insert.Set(gameResult.LargestMultiKill); insert.Set(gameResult.LargestKillingSpree); insert.Set(gameResult.LargestCriticalStrike); //Summoner's Rift/Twisted Treeline insert.Set(gameResult.NeutralMinionsKilled); insert.Set(gameResult.TurretsDestroyed); insert.Set(gameResult.InhibitorsDestroyed); //Dominion insert.Set(gameResult.NodesNeutralised); insert.Set(gameResult.NodeNeutralisationAssists); insert.Set(gameResult.NodesCaptured); insert.Set(gameResult.VictoryPoints); insert.Set(gameResult.Objectives); insert.Set(gameResult.TotalScore); insert.Set(gameResult.ObjectiveScore); insert.Set(gameResult.CombatScore); insert.Set(gameResult.Rank); insert.Execute(); } }
static int CompareGames(PlayerGameStats x, PlayerGameStats y) { return(-x.createDate.CompareTo(y.createDate)); }
private PlayerGameStats SingleGet(int id) { PlayerGameStats SinglePlayerStats = new PlayerGameStats(id); return(SinglePlayerStats); }
private PlayerGameStats PVPTwoGet(int id) { PlayerGameStats PVPTwoStats = new PlayerGameStats(id); return(PVPTwoStats); }
private List <PlayerGameLog> MapToPlayerGameLog(string json) { List <PlayerGameLog> gameLogs = new List <PlayerGameLog>(); dynamic array = JsonConvert.DeserializeObject(json); foreach (var line in array.playergamelogs.gamelogs) { var game = new Game { Id = line.game.id, Date = DateTime.ParseExact((string)line.game.date + " " + (string)line.game.time, "yyyy-MM-dd h:mmtt", CultureInfo.InvariantCulture), AwayTeam = new Team { Id = line.game.awayTeam.ID, City = line.game.awayTeam.City, Name = line.game.awayTeam.Name, Abbreviation = line.game.awayTeam.Abbreviation }, HomeTeam = new Team { Id = line.game.homeTeam.ID, City = line.game.homeTeam.City, Name = line.game.homeTeam.Name, Abbreviation = line.game.homeTeam.Abbreviation }, Location = line.game.location }; var player = new Player { Id = line.player.ID, LastName = line.player.LastName, FirstName = line.player.FirstName, JerseyNumber = line.player.JerseyNumber, Position = line.player.Position, Team = new Team { Id = line.team.ID, City = line.team.City, Name = line.team.Name, Abbreviation = line.team.Abbreviation } }; PlayerGameStats gameStats = new PlayerGameStats() { PenaltyStats = new PenaltyStats { Penalties = line.stats.Penalties["#text"], PIM = line.stats.PenaltyMinutes["#text"] }, ScoringStats = new ScoringStats { Goals = line.stats.Goals["#text"], Assists = line.stats.Assists["#text"], Points = line.stats.Points["#text"], HatTricks = line.stats.HatTricks["#text"], PowerPlayGoals = line.stats.PowerplayGoals["#text"], PowerPlayAssists = line.stats.PowerplayAssists["#text"], PowerPlayPoints = line.stats.PowerplayPoints["#text"], ShortHandedGoals = line.stats.ShorthandedGoals["#text"], ShortHandedAssists = line.stats.ShorthandedAssists["#text"], ShortHandedPoints = line.stats.ShorthandedPoints["#text"], GameWinningGoals = line.stats.GameWinningGoals["#text"], GameTyingGoals = line.stats.GameTyingGoals["#text"] } }; if (player.Position == "G") { gameStats.GoalieScoringStats = new GoalieScoringStats { Wins = line.stats.Wins["#text"], Losses = line.stats.Losses["#text"], OvertimeWins = line.stats.OvertimeWins["#text"], OvertimeLosses = line.stats.OvertimeLosses["#text"], GoalsAgainst = line.stats.GoalsAgainst["#text"], ShotsAgainst = line.stats.ShotsAgainst["#text"], Saves = line.stats.Saves["#text"], GoalsAgainstAverage = line.stats.GoalsAgainstAverage["#text"], SavePercentage = line.stats.SavePercentage["#text"], Shutouts = line.stats.Shutouts["#text"], GamesStarted = line.stats.GamesStarted["#text"], CreditForGame = line.stats.CreditForGame["#text"], MinutesPlayed = line.stats.MinutesPlayed["#text"] }; } else { gameStats.SkatingStats = new SkatingStats { PlusMinus = line.stats.PlusMinus["#text"], Shots = line.stats.Shots["#text"], ShotPercentage = line.stats.ShotPercentage["#text"], BlockedShots = line.stats.BlockedShots == null ? null : line.stats.BlockedShots["#text"], Hits = line.stats.Hits["#text"], FaceoffsTaken = line.stats.Faceoffs["#text"], FaceoffWins = line.stats.FaceoffWins["#text"], FaceoffsLosses = line.stats.FaceoffLosses["#text"], FaceoffPercentage = line.stats.FaceoffPercent["#text"] }; } gameLogs.Add(new PlayerGameLog { GameInfo = game, PlayerInfo = player, PlayerGameStats = gameStats }); } return(gameLogs); }
void UpdateSummonerGame(Summoner summoner, PlayerGameStats game, DbConnection connection) { //Don't store tutorial games if (game.gameMode == "TUTORIAL" || game.gameType == "TUTORIAL_GAME") { return; } const int blueId = 100; //const int purpleId = 200; bool isBlueTeam = game.teamId == blueId; int gameId; int summonerTeamId; GameResult gameResult = new GameResult(game); //At first we must determine if the game is already in the database using (var check = Command("select id, blue_team_id, purple_team_id from game where game.game_id = :game_id", connection)) { check.Set("game_id", game.gameId); using (var reader = check.ExecuteReader()) { if (reader.Read()) { //The game is already in the database gameId = reader.Integer(); int blueTeamId = reader.Integer(); int purpleTeamId = reader.Integer(); reader.Close(); if (isBlueTeam) { summonerTeamId = blueTeamId; } else { summonerTeamId = purpleTeamId; } //Check if the game result for this player has already been stored using (var gameCheck = Command("select count(*) from player where (team_id = :blue_team_id or team_id = :purple_team_id) and summoner_id = :summoner_id", connection)) { gameCheck.Set("blue_team_id", blueTeamId); gameCheck.Set("purple_team_id", purpleTeamId); gameCheck.Set("summoner_id", summoner.Id); long count = (long)gameCheck.ExecuteScalar(); if (count > 0) { //The result of this game for this player has already been stored in the database, there is no work to be done return; } } //The game is already stored in the database but the results of this player were previously unknown //This means that this player must be removed from the list of unknown players for this game using (var delete = Command("delete from unknown_player where team_id = :team_id and summoner_id = :summoner_id", connection)) { delete.Set("team_id", summonerTeamId); delete.Set("summoner_id", summoner.SummonerId); delete.Execute(); } } else { reader.Close(); //The game is not in the database yet //Need to create the team entries first using (var newTeam = Command("insert into team default values", connection)) { newTeam.Execute(); int blueTeamId = GetInsertId("team", connection); newTeam.Execute(); int purpleTeamId = GetInsertId("team", connection); summonerTeamId = isBlueTeam ? blueTeamId : purpleTeamId; MapType map; GameModeType gameMode; switch (game.gameMapId) { //Autumn case 1: //No idea what 2 means case 2: //Not sure either, encountered this in some games from 4 months ago on an inactive account case 3: //Winter case 6: map = MapType.SummonersRift; break; case 4: map = MapType.TwistedTreeline; break; case 7: map = MapType.ProvingGrounds; break; case 8: map = MapType.Dominion; break; // Apparently this is from the Twisted Treeline remake case 10: map = MapType.TwistedTreeline; break; default: throw new Exception(string.Format("Unknown game map ID in the match history of {0}: {1}", summoner.SummonerName, game.gameMapId)); } if (game.gameType == "PRACTICE_GAME" || game.gameType == "CUSTOM_GAME") { gameMode = GameModeType.Custom; } else { switch (game.queueType) { case "RANKED_TEAM_3x3": case "RANKED_TEAM_5x5": case "RANKED_PREMADE_3x3": case "RANKED_PREMADE_5x5": gameMode = GameModeType.Premade; break; case "NORMAL": case "NORMAL_3x3": case "ODIN_UNRANKED": gameMode = GameModeType.Normal; break; case "RANKED_SOLO_5x5": gameMode = GameModeType.Solo; break; case "BOT": gameMode = GameModeType.Bot; break; case "BOT_3x3": gameMode = GameModeType.Bot; break; default: throw new Exception(string.Format("Unknown queue type in the match history of {0}: {1}", summoner.SummonerName, game.queueType)); } } using (var newGame = Command("insert into game ({0}) values ({1})", connection, GetGroupString(NewGameFields), GetPlaceholderString(NewGameFields))) { newGame.SetFieldNames(NewGameFields); newGame.Set(game.gameId); newGame.Set(map); newGame.Set(gameMode); newGame.Set(game.createDate.ToUnixTime()); newGame.Set(blueTeamId); newGame.Set(purpleTeamId); newGame.Set(gameResult.Win == isBlueTeam); newGame.Execute(); gameId = GetInsertId("game", connection); //We need to create a list of unknown players for this game so they can get updated in future if necessary //Otherwise it is unclear who participated in this game //Retrieving their stats at this point is too expensive and hence undesirable foreach (var player in game.fellowPlayers) { using (var missingPlayer = Command("insert into unknown_player (team_id, champion_id, summoner_id) values (:team_id, :champion_id, :summoner_id)", connection)) { missingPlayer.Set("team_id", player.teamId == blueId ? blueTeamId : purpleTeamId); missingPlayer.Set("champion_id", player.championId); missingPlayer.Set("summoner_id", player.summonerId); missingPlayer.Execute(); } } } } } } } InsertGameResult(summoner, gameId, summonerTeamId, game, gameResult, connection); }
public static int InsertPlayerGameStats(PlayerGameStats p, string gameId) { DataAccessHelper dataAccess = new DataAccessHelper(""); string sqlStatement = "spCreatePlayerGameStats"; List <SQLParameter> sqlParameterList = new List <SQLParameter>(); // Create the list of input parameters sqlParameterList.Add(new SQLParameter("@gameId", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(gameId, "string"), "in")); sqlParameterList.Add(new SQLParameter("@playerId", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(p.playerID, "number"), "in")); sqlParameterList.Add(new SQLParameter("@position", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.position, "string"), "in")); sqlParameterList.Add(new SQLParameter("@timeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.timeOnIce, "number")), "number"), "in")); sqlParameterList.Add(new SQLParameter("@assists", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.assists, "number"), "in")); sqlParameterList.Add(new SQLParameter("@goals", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.goals, "number"), "in")); sqlParameterList.Add(new SQLParameter("@shots", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shots, "number"), "in")); sqlParameterList.Add(new SQLParameter("@hits", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.hits, "number"), "in")); sqlParameterList.Add(new SQLParameter("@powerPlayGoals", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.powerPlayGoals, "number"), "in")); sqlParameterList.Add(new SQLParameter("@powerPlayAssists", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.powerPlayAssists, "number"), "in")); sqlParameterList.Add(new SQLParameter("@penaltyMinutes", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.penaltyMinutes, "number"), "in")); sqlParameterList.Add(new SQLParameter("@faceoffWins", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.faceoffWins, "number"), "in")); sqlParameterList.Add(new SQLParameter("@faceoffWinPercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.faceoffWinPercentage).ToString(), "number"), "in")); sqlParameterList.Add(new SQLParameter("@faceoffsTaken", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.faceoffsTaken, "number"), "in")); sqlParameterList.Add(new SQLParameter("@takeaways", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.takeaways, "number"), "in")); sqlParameterList.Add(new SQLParameter("@giveaways", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.giveaways, "number"), "in")); sqlParameterList.Add(new SQLParameter("@shorthandedGoals", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shorthandedGoals, "number"), "in")); sqlParameterList.Add(new SQLParameter("@shorthandedAssists", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shorthandedAssists, "number"), "in")); sqlParameterList.Add(new SQLParameter("@blocked", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.blocked, "number"), "in")); sqlParameterList.Add(new SQLParameter("@plusMinus", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.plusMinus, "number"), "in")); sqlParameterList.Add(new SQLParameter("@evenTimeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.evenTimeOnIce, "number")), "number"), "in")); sqlParameterList.Add(new SQLParameter("@powerPlayTimeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.powerPlayTimeOnIce, "number")), "number"), "in")); sqlParameterList.Add(new SQLParameter("@shorthandedTimeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.shorthandedTimeOnIce, "number")), "number"), "in")); sqlParameterList.Add(new SQLParameter("@goalieTimeOnIce", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Utilities.TimeToInt(DataAccessHelper.SafeOutput <string>(p.goalieTimeOnIce, "number")), "number"), "in")); sqlParameterList.Add(new SQLParameter("@shotsFaced", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shotsFaced, "number"), "in")); sqlParameterList.Add(new SQLParameter("@shotsSaved", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shotsSaved, "number"), "in")); sqlParameterList.Add(new SQLParameter("@powerPlayShotsSaved", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.powerPlayShotsSaved, "number"), "in")); sqlParameterList.Add(new SQLParameter("@shorthandedShotsSaved", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shorthandedShotsSaved, "number"), "in")); sqlParameterList.Add(new SQLParameter("@evenSaved", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.evenSaved, "number"), "in")); sqlParameterList.Add(new SQLParameter("@shorthandedShotsAgainst", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.shorthandedShotsAgainst, "number"), "in")); sqlParameterList.Add(new SQLParameter("@evenShotsAgainst", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.evenShotsAgainst, "number"), "in")); sqlParameterList.Add(new SQLParameter("@powerPlayShotsAgainst", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <string>(p.powerPlayShotsAgainst, "number"), "in")); sqlParameterList.Add(new SQLParameter("@decision", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput <string>(p.decision, "string"), "in")); sqlParameterList.Add(new SQLParameter("@savePercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.savePercentage).ToString(), "number"), "in")); sqlParameterList.Add(new SQLParameter("@evenSavePercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.evenSavePercentage).ToString(), "number"), "in")); sqlParameterList.Add(new SQLParameter("@powerPlaySavePercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.powerPlaySavePercentage).ToString(), "number"), "in")); sqlParameterList.Add(new SQLParameter("@shorthandedSavePercentage", System.Data.SqlDbType.Decimal, DataAccessHelper.SafeOutput <string>(Utilities.PareDecimals(p.shorthandedSavePercentage).ToString(), "number"), "in")); //sqlParameterList.Add(new SQLParameter("@rawJson", System.Data.SqlDbType.VarChar, DataAccessHelper.SafeOutput<string>("NULL", "string"), "in")); string theQuery = "EXEC spCreatePlayerGameStats "; foreach (SQLParameter s in sqlParameterList) { Console.WriteLine("{0} = {1} ({2})", s.paramName, s.paramValue, s.paramType); if (s.paramType.ToString().ToUpper() == "VARCHAR" || s.paramType.ToString().ToUpper() == "N") { theQuery = theQuery + "'" + s.paramValue + "', "; } else { theQuery = theQuery + s.paramValue + ", "; } } // Create the output parameter sqlParameterList.Add(new SQLParameter("@playerGameStatsIdentity", System.Data.SqlDbType.Int, DataAccessHelper.SafeOutput <int>(Convert.ToInt32("0"), "number"), "out")); return(dataAccess.ExecuteParameterizedQuery(sqlParameterList, sqlStatement)); }