public List <Classes.playersData> CreateMassData() { List <Classes.playersData> massPlayerData = new List <Classes.playersData>(); Classes.Logger.addLog("btnMassPlayerData_Click() - mass report created"); massPlayerData.Clear(); //if (lbReports.SelectedItems.Count < 2) if (2 == 1) { // MessageBox.Show("Select more than one Battlereport"); } else { foreach (MyItem item in lbReports.SelectedItems) { Classes.CustomSnapshotRoot m_report = getSnapshot(reports[lbReports.Items.IndexOf(item)]); foreach (var player in m_report.snapshot.teamInfo.team1.player) { bool addOrNot = true; foreach (var name in massPlayerData) { if (player.name == name.name) { addOrNot = false; } } if (addOrNot == true) { massPlayerData.Add(new Classes.playersData { deaths = player.deaths, kills = player.kills, name = player.name, score = player.score, bombsDetonated = player.bombsDetonated }); } else { int index = massPlayerData.FindLastIndex(c => c.name == player.name); int addKills = massPlayerData[index].kills; int addDeaths = massPlayerData[index].deaths; int addScore = massPlayerData[index].score; int addBombs = massPlayerData[index].bombsDetonated; massPlayerData[index] = new Classes.playersData() { deaths = player.deaths + addDeaths, kills = player.kills + addKills, name = player.name, score = player.score + addScore, bombsDetonated = player.bombsDetonated + addBombs }; } } foreach (var player in m_report.snapshot.teamInfo.team2.player) { bool addOrNot = true; foreach (var name in massPlayerData) { if (player.name == name.name) { addOrNot = false; } } if (addOrNot == true) { massPlayerData.Add(new Classes.playersData { deaths = player.deaths, kills = player.kills, name = player.name, score = player.score, bombsDetonated = player.bombsDetonated }); } else { int index = massPlayerData.FindLastIndex(c => c.name == player.name); int addKills = massPlayerData[index].kills; int addDeaths = massPlayerData[index].deaths; int addScore = massPlayerData[index].score; int addBombs = massPlayerData[index].bombsDetonated; massPlayerData[index] = new Classes.playersData() { deaths = player.deaths + addDeaths, kills = player.kills + addKills, name = player.name, score = player.score + addScore, bombsDetonated = player.bombsDetonated + addBombs }; } } } } return(massPlayerData); }
public CustomSnapshotRoot getKeeperInfo(string guid) { string keeperData = ""; getNumPlayersOnServer playersOnServerData = getNumPlayersOnServerInfo(guid); SnapshotRoot snapshotData = null; CustomSnapshotRoot snapshotSend = null; List <playersData> team0Data = new List <playersData>(); List <playersData> team1Data = new List <playersData>(); List <playersData> team2Data = new List <playersData>(); playersData empty = new playersData { name = "No players on the server" }; try { using (WebClient wc = new WebClient()) { keeperData = wc.DownloadString(keeperURL + guid); } }catch (Exception) { Classes.Logger.addLog("The server crashed or was never available: " + guid); } snapshotData = JsonConvert.DeserializeObject <SnapshotRoot>(keeperData); if (snapshotData == null) { return(null); } if (!snapshotData.snapshot.status.Equals("SUCCESS", StringComparison.OrdinalIgnoreCase)) { return(null); } //run update code and return null if (snapshotData.snapshot.teamInfo.Team0 != null) { var team0 = snapshotData.snapshot.teamInfo.Team0; foreach (KeyValuePair <string, JToken> x in team0.players) { TeamPlayer playerInfo = x.Value.ToObject <TeamPlayer>(); team0Data.Add( new playersData { playerId = ulong.Parse(x.Key.ToString()), name = playerInfo.Name, kills = playerInfo.kills, deaths = playerInfo.deaths, score = playerInfo.score, tag = playerInfo.tag, squad = playerInfo.squad, role = playerInfo.role }); } } if (snapshotData.snapshot.teamInfo.Team1 != null) { var team1 = snapshotData.snapshot.teamInfo.Team1; foreach (KeyValuePair <string, JToken> x in team1.players) { TeamPlayer playerInfo = x.Value.ToObject <TeamPlayer>(); team1Data.Add( new playersData { playerId = ulong.Parse(x.Key.ToString()), name = playerInfo.Name, kills = playerInfo.kills, deaths = playerInfo.deaths, score = playerInfo.score, tag = playerInfo.tag, squad = playerInfo.squad, role = playerInfo.role }); } } else { team1Data.Add(empty); } if (snapshotData.snapshot.teamInfo.Team2 != null) { var team2 = snapshotData.snapshot.teamInfo.Team2; foreach (KeyValuePair <string, JToken> x in team2.players) { TeamPlayer playerInfo = x.Value.ToObject <TeamPlayer>(); team2Data.Add( new playersData { playerId = ulong.Parse(x.Key.ToString()), name = playerInfo.Name, kills = playerInfo.kills, deaths = playerInfo.deaths, score = playerInfo.score, tag = playerInfo.tag, squad = playerInfo.squad, role = playerInfo.role }); } } else { team2Data.Add(empty); } //SORT TEAM DATA BY SCORE team1Data = team1Data.OrderByDescending(x => x.score).ToList(); team2Data = team2Data.OrderByDescending(x => x.score).ToList(); //Copy snapshotData to snapshotSend //--------------COPY--------------- //repackage all data into CustomSnapshotRoot int team1Tickets = 0; int team2Tickets = 0; int team1TicketsMax = 0; int team2TicketsMax = 0; if (snapshotData.snapshot.Conquest != null) { team1Tickets = snapshotData.snapshot.Conquest.Team1.tickets; team1TicketsMax = snapshotData.snapshot.Conquest.Team1.ticketsMax; team2Tickets = snapshotData.snapshot.Conquest.Team2.tickets; team2TicketsMax = snapshotData.snapshot.Conquest.Team2.ticketsMax; } else if (snapshotData.snapshot.Deathmatch != null) { team1Tickets = snapshotData.snapshot.Deathmatch.Team1.Kills; team1TicketsMax = snapshotData.snapshot.Deathmatch.Team1.KillsMax; team2Tickets = snapshotData.snapshot.Deathmatch.Team2.Kills; team2TicketsMax = snapshotData.snapshot.Deathmatch.Team2.KillsMax; } try { snapshotSend = new CustomSnapshotRoot { lastUpdated = snapshotData.lastUpdated, snapshot = new CustomSnapshot { status = snapshotData.snapshot.status, gameId = snapshotData.snapshot.gameId, currentMap = snapshotData.snapshot.currentMap, maxPlayers = snapshotData.snapshot.maxPlayers, waitingPlayers = snapshotData.snapshot.waitingPlayers, roundTime = snapshotData.snapshot.roundTime, gameMode = snapshotData.snapshot.gameMode, mapId = playersOnServerData.map, modeId = playersOnServerData.mapMode, team1Tickets = new modeCounter { tickets = team1Tickets, ticketsMax = team1TicketsMax }, team2Tickets = new modeCounter { tickets = team2Tickets, ticketsMax = team2TicketsMax }, teamInfo = new CustomSnapshotTeamInfo { team0 = new CustomSnapshotTeam { faction = snapshotData.snapshot.teamInfo.Team0.faction, player = team0Data }, team1 = new CustomSnapshotTeam { faction = snapshotData.snapshot.teamInfo.Team1.faction, player = team1Data }, team2 = new CustomSnapshotTeam { faction = snapshotData.snapshot.teamInfo.Team2.faction, player = team2Data } } } }; } catch (Exception ex) { Classes.Logger.addLog(ex.ToString()); } return(snapshotSend); }