BF2Statistics.Web.ASP.FormattedOutput.ToString C# (CSharp) Method

ToString() public method

Converts the Headers and Data into Gamespy ASP Format
public ToString ( ) : string
return string
        public override string ToString()
        {
            // Create a StringBuilder
            StringBuilder Builder = new StringBuilder();

            // Transpose is a special format used with &transpose=1
            if (Transpose)
            {
                // Start off with header... for each row, we need a \tD
                String D = "\tD";
                Builder.Append("\nH" + D.Repeat(Rows.Count));

                // Each header gets its own line, with data lines seperated by a tab
                int i = 0;
                foreach (string Header in Headers)
                {
                    string Line = "\n" + Header;
                    foreach (List<string> Row in Rows)
                        Line = String.Concat(Line, "\t", Row[i]);

                    // Append header and data line
                    Builder.Append(Line);
                    i++;
                }

                return Builder.ToString();
            }
            else
            {
                // Add Headers
                Builder.AppendFormat("\nH\t{0}", String.Join("\t", Headers));

                // Add Data
                foreach (List<string> Items in Rows)
                    Builder.AppendFormat("\nD\t{0}", String.Join("\t", Items));

                // Return lines
                return Builder.ToString();
            }
        }

Usage Example

        /// <summary>
        /// Adds HeaderData to the current output
        /// </summary>
        /// <param name="Data"></param>
        public void WriteHeaderDataPair(Dictionary <string, object> Data)
        {
            if (Transpose)
            {
                if (Formatted != null)
                {
                    ResponseBody.Append(Formatted.ToString());
                }

                List <string> Params = new List <string>(Data.Count);
                foreach (KeyValuePair <string, object> Item in Data)
                {
                    Params.Add(Item.Key);
                }

                Formatted           = new FormattedOutput(Params);
                Formatted.Transpose = true;

                Params = new List <string>(Data.Count);
                foreach (KeyValuePair <string, object> Item in Data)
                {
                    Params.Add(Item.Value.ToString());
                }

                Formatted.AddRow(Params);
            }
            else
            {
                // Add Keys
                ResponseBody.Append("\nH");
                foreach (KeyValuePair <string, object> Item in Data)
                {
                    ResponseBody.Append("\t" + Item.Key);
                }

                // Add Data
                ResponseBody.Append("\nD");
                foreach (KeyValuePair <string, object> Item in Data)
                {
                    ResponseBody.Append("\t" + Item.Value);
                }
            }
        }
All Usage Examples Of BF2Statistics.Web.ASP.FormattedOutput::ToString