BF2Statistics.Web.ASP.GetLeaderBoard.DoWeapons C# (CSharp) Method

DoWeapons() private method

private DoWeapons ( ) : void
return void
        private void DoWeapons()
        {
            // Make sure we have a score sub type
            int KitId = 0;
            if (String.IsNullOrWhiteSpace(Id) || !Int32.TryParse(Id, out KitId))
            {
                Response.WriteResponseStart(false);
                Response.WriteHeaderLine("asof", "err");
                Response.WriteDataLine(DateTime.UtcNow.ToUnixTimestamp(), "Invalid Syntax!");
                Response.Send();
                return;
            }

            // Get total number of players who have at least 1 kill in kit
            int Count = Database.ExecuteScalar<int>(String.Format("SELECT COUNT(id) AS count FROM weapons WHERE kills{0} > 0", Id));
            Response.WriteResponseStart();
            Response.WriteHeaderLine("size", "asof");
            Response.WriteDataLine(Count, DateTime.UtcNow.ToUnixTimestamp());

            // Build New Header Output
            Response.WriteHeaderLine("n", "pid", "nick", "killswith", "detahsby", "timeused", "accuracy", "playerrank", "countrycode");

            // Get Leaderboard Positions
            string Query = String.Format("SELECT player.id AS plid, name, rank, country, kills{0} AS kills, deaths{0} AS deaths, time{0} AS time, "
                + "hit{0} AS hit, fired{0} AS fired FROM player NATURAL JOIN weapons WHERE kills{0} > 0 ORDER BY kills{0} DESC, name DESC", KitId);
            if (Pid == 0)
                Query += String.Format(" LIMIT {0}, {1}", Min, Max);

            List<Dictionary<string, object>> Rows = Database.Query(Query);
            foreach (Dictionary<string, object> Player in Rows)
            {
                if (Pid == 0 || Int32.Parse(Player["plid"].ToString()) == Pid)
                {
                    float Hit = float.Parse(Player["hit"].ToString());
                    float Fired = float.Parse(Player["fired"].ToString());
                    float Acc = (Hit / Fired) * 100;
                    Response.WriteDataLine(
                        Pos,
                        Player["plid"],
                        Player["name"].ToString().Trim(),
                        Player["kills"],
                        Player["deaths"],
                        Player["time"],
                        Math.Round(Acc, 0),
                        Player["rank"],
                        Player["country"].ToString().ToUpper()
                    );

                    if (Pid != 0)
                        break;
                }
                Pos++;
            }

            // Send response
            Response.Send();
        }