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

DoRisingStar() private method

private DoRisingStar ( ) : void
return void
        private void DoRisingStar()
        {
            // Fetch all players that made the rising star board
            int Timeframe = DateTime.UtcNow.ToUnixTimestamp() - (60 * 60 * 24 * 7);
            string Query = "SELECT COUNT(DISTINCT(id)) AS count FROM player_history WHERE score > 0 AND timestamp >= @P0";
            List<Dictionary<string, object>> Rows = Database.Query(Query, Timeframe);

            // Write initial Headers
            int Count = Int32.Parse(Rows[0]["count"].ToString());
            Response.WriteResponseStart();
            Response.WriteHeaderLine("size", "asof");
            Response.WriteDataLine(Count, DateTime.UtcNow.ToUnixTimestamp());

            // Start a new header
            Response.WriteHeaderLine("n", "pid", "nick", "weeklyscore", "totaltime", "date", "playerrank", "countrycode");
            if (Count == 0)
            {
                Response.Send();
                return;
            }

            // Are we finding players position, or are we fetching the list?
            if (Pid == 0)
            {
                Query = "SELECT p.id, p.name, p.rank, p.country, p.time, sum(h.score) as weeklyscore, p.joined"
                    + " FROM player AS p JOIN player_history AS h ON p.id = h.id"
                    + " WHERE (h.score > 0 AND h.timestamp >= @P0)"
                    + " GROUP BY p.id"
                    + " ORDER BY weeklyscore DESC, name DESC LIMIT @P1, @P2";
                Rows = Database.Query(Query, Timeframe, Min, Max);
                foreach (Dictionary<string, object> Player in Rows)
                {
                    DateTime FromUnix = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Int32.Parse(Player["joined"].ToString())).ToLocalTime();
                    string DateString = FromUnix.ToString( "MM/dd/yy hh:mm:00 tt" );
                    Response.WriteDataLine(
                        Pos++,
                        Player["id"],
                        Player["name"].ToString().Trim(),
                        Player["weeklyscore"],
                        Player["time"],
                        DateString,
                        Player["rank"],
                        Player["country"].ToString().ToUpper()
                    );
                }

                // Send Response
                Response.Send();
            }
            else
            {
                // Find players position
                Query = @"SELECT p.id, p.name, p.rank, p.country, p.time, sum(h.score) as weeklyscore, p.joined"
                    + " FROM player AS p JOIN player_history AS h ON p.id = h.id"
                    + " WHERE (h.score > 0 AND h.timestamp >= @P0)"
                    + " GROUP BY p.id"
                    + " ORDER BY weeklyscore DESC, name DESC";
                Rows = Database.Query(Query, Timeframe);
                foreach (Dictionary<string, object> Player in Rows)
                {
                    if (Int32.Parse(Player["id"].ToString()) == Pid)
                    {
                        DateTime FromUnix = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(Int32.Parse(Player["joined"].ToString())).ToLocalTime();
                        string DateString = FromUnix.ToString("MM/dd/yy hh:mm:00 tt");
                        Response.WriteDataLine(
                            Pos,
                            Player["id"],
                            Player["name"].ToString().Trim(),
                            Player["weeklyscore"],
                            Player["time"],
                            DateString,
                            Player["rank"],
                            Player["country"].ToString().ToUpper()
                        );
                        break;
                    }
                    Pos++;
                }

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