Exemple #1
0
        /// <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");
        }
Exemple #2
0
        public async Task <IndexResponse> PostPlayerStats(MatchPlayerDTO player)
        {
            var asyncIndexResponse = await client.IndexDocumentAsync(player);

            if (asyncIndexResponse.IsValid)
            {
                return(asyncIndexResponse);
            }
            else
            {
                return(asyncIndexResponse);
            }
        }