/// <summary> /// This method process Playerstats stat block /// </summary> internal override void ProcessPlayerStats() { logger.Info("Beginning to parse Player Stats"); // this var will be used to create unique guest ids that we'll then default to 999 at db entry var guestOrNotLoggedInStatId = 0; var s = StatBlocks[PLAYER_STATS_INDEX]; // split each player to process individually var statsData = s.Split(new string[] { LINE_SPLITTER }, StringSplitOptions.None); // Check if player count is uneven and throw exception if so. if (statsData.Length % 2 != 0) { throw new Exception("Odd number of players. Rage quit must have occured. Is omi, bib, ck1, dave/pete playing?"); } // loop through each player creating a new player object and setting stats. for (int i = 2; i < statsData.Length; i++) { // indexes var statIdIndex = 0; var nameIndex = 1; var teamColorIndex = 2; var killEfficiencyIndex = 3; var weaponEfficiencyIndex = 4; var pingIndex = 5; var ipIndex = 6; var pdata = statsData[i].Split(COLUMN_SPLITTER); // populate player object var p = new MatchPlayerDTO() { StatId = pdata[statIdIndex].Trim(), Name = pdata[nameIndex].Trim(), TeamColor = pdata[teamColorIndex].Trim(), KillEfficiency = pdata[killEfficiencyIndex].Trim(), WeaponEfficiency = pdata[weaponEfficiencyIndex].Trim(), Ping = pdata[pingIndex].Trim(), // remove last octet per Turtlevan IpAddress = pdata[ipIndex].Trim().Remove(pdata[ipIndex].Length - 3) + "xxx" }; // add players to list of players // if statid is 0 set it to less than 0 as we'll default this to UnknownPlayerId 999 if (p.StatId.Equals("0")) { guestOrNotLoggedInStatId -= 1; p.StatId = (guestOrNotLoggedInStatId).ToString(); } MatchResults.ListOfPlayers.Add(p.StatId, p); } logger.Info("End parsing player stats"); }
public async Task <IndexResponse> PostPlayerStats(MatchPlayerDTO player) { var asyncIndexResponse = await client.IndexDocumentAsync(player); if (asyncIndexResponse.IsValid) { return(asyncIndexResponse); } else { return(asyncIndexResponse); } }