BF2Statistics.Web.ASP.GetPlayerInfo.DoServerRequest C# (CSharp) Method

DoServerRequest() private method

Produces the Server response
private DoServerRequest ( ) : void
return void
        private void DoServerRequest()
        {
            // Fetch Player
            Rows = Database.Query("SELECT * FROM player WHERE id=@P0", Pid);

            // If player doesnt exist then output default data
            if (Rows.Count == 0)
            {
                Response.WriteResponseStart(false);
                Response.WriteHeaderLine("asof", "err");
                Response.WriteDataLine(DateTime.UtcNow.ToUnixTimestamp(), "Player Doesnt Exist");
                Response.Send();
                return;
            }
            else
            {
                Response.WriteResponseStart();
                Response.WriteHeaderLine("asof");
                Response.WriteDataLine(DateTime.UtcNow.ToUnixTimestamp());
            }

            // Add default player data
            Dictionary<string, object> Player = Rows[0];
            Out.Add("pid", Pid);
            Out.Add("name", Player["name"]);
            Out.Add("scor", Player["score"]);
            Out.Add("rank", Player["rank"]);
            Out.Add("dfcp", Player["defends"]);
            Out.Add("rpar", Player["repairs"]);
            Out.Add("heal", Player["heals"]);
            Out.Add("rsup", Player["ammos"]);
            Out.Add("dsab", Player["driverspecials"]);
            Out.Add("cdsc", Player["cmdscore"]);
            Out.Add("tcdr", Player["cmdtime"]);
            Out.Add("tsql", Player["sqltime"]);
            Out.Add("tsqm", Player["sqmtime"]);
            Out.Add("wins", Player["wins"]);
            Out.Add("loss", Player["losses"]);
            Out.Add("twsc", Player["teamscore"]);
            Out.Add("bksk", Player["killstreak"]);
            Out.Add("wdsk", Player["deathstreak"]);
            Out.Add("time", Player["time"]);
            Out.Add("kill", Player["kills"]);

            // Add Kit Times
            Rows = Database.Query("SELECT time0, time1, time2, time3, time4, time5, time6 FROM kits WHERE id=@P0", Pid);
            if (Rows.Count == 0)
            {
                for (int i = 0; i < 7; i++)
                    Out.Add("ktm-" + i, 0);
            }
            else
            {
                for (int i = 0; i < 7; i++)
                    Out.Add("ktm-" + i, Rows[0]["time" + i]);
            }

            // Add weapon data
            Rows = Database.Query("SELECT * FROM weapons WHERE id=@P0", Pid);
            if (Rows.Count == 0)
            {
                for (int i = 0; i < 14; i++)
                    Out.Add("wkl-" + i, 0);

                if (Info.Contains("de-"))
                {
                    Out.Add("de-6", 0);
                    Out.Add("de-7", 0);
                    Out.Add("de-8", 0);
                }
            }
            else
            {
                for (int i = 0; i < 9; i++)
                    Out.Add("wkl-" + i, Rows[0]["kills" + i]);

                Out.Add("wkl-9", Rows[0]["knifekills"]);
                Out.Add("wkl-10", Rows[0]["shockpadkills"]);
                Out.Add("wkl-11",
                    int.Parse(Rows[0]["c4kills"].ToString()) +
                    int.Parse(Rows[0]["claymorekills"].ToString()) +
                    int.Parse(Rows[0]["atminekills"].ToString())
                );
                Out.Add("wkl-12", Rows[0]["handgrenadekills"]);
                Out.Add("wkl-13", 0);

                // Special Forces
                if (Info.Contains("de-"))
                {
                    Out.Add("de-6", Rows[0]["tacticaldeployed"]);
                    Out.Add("de-7", Rows[0]["grapplinghookdeployed"]);
                    Out.Add("de-8", Rows[0]["ziplinedeployed"]);
                }
            }

            // Add Vehicle Data
            Rows = Database.Query("SELECT * FROM vehicles WHERE id=@P0", Pid);
            if (Rows.Count == 0)
            {
                // Time
                for (int i = 0; i < 7; i++)
                    Out.Add("vtm-" + i, 0);

                // Kills
                for (int i = 0; i < 7; i++)
                    Out.Add("vkl-" + i, 0);
            }
            else
            {
                // Time
                for (int i = 0; i < 7; i++)
                    Out.Add("vtm-" + i, Rows[0]["time" + i]);

                // Kills
                for (int i = 0; i < 7; i++)
                    Out.Add("vkl-" + i, Rows[0]["kills" + i]);
            }

            // Add army data (Army medals are processed in the backend, but this MAY change)
            Rows = Database.Query("SELECT * FROM army WHERE id=@P0", Pid);
            if (Rows.Count == 0)
            {
                // Time
                for (int i = 0; i < 12; i++)
                    Out.Add("atm-" + i, 0);

                // Best Round Score
                for (int i = 0; i < 12; i++)
                    Out.Add("abr-" + i, 0);

                // Wins
                for (int i = 0; i < 12; i++)
                    Out.Add("awn-" + i, 0);
            }
            else
            {
                // Time
                for (int i = 0; i < 12; i++)
                    Out.Add("atm-" + i, Rows[0]["time" + i]);

                // Best Round Score
                for (int i = 0; i < 12; i++)
                    Out.Add("abr-" + i, Rows[0]["best" + i]);

                // Wins
                for (int i = 0; i < 12; i++)
                    Out.Add("awn-" + i, Rows[0]["win" + i]);
            }

            // Send Response
            Response.WriteHeaderDataPair(Out);
            Response.Send();
        }