Untitled
JCallico
plain_text
2 years ago
4.5 kB
7
Indexable
Here is the equivalent C# code for the provided Perl `return_html` subroutine. Note that some parts of the code, like the HTML output, have been adapted for C# syntax. Adjustments may be needed based on your specific requirements. ```csharp using System; using System.Collections.Specialized; class Program { static void Main() { // Example usage NameValueCollection config = new NameValueCollection { { "recipient", "recipient@example.com" }, { "title", "Form Submission Confirmation" }, // Add other configuration values as needed }; NameValueCollection form = new NameValueCollection { { "realname", "John Doe" }, { "email", "john.doe@example.com" }, // Add other form fields as needed }; ReturnHtml(config, form); } static void ReturnHtml(NameValueCollection config, NameValueCollection form) { // If redirect option is used, print the redirection location header. if (!string.IsNullOrEmpty(config["redirect"])) { Console.WriteLine($"Location: {config["redirect"]}\n\n"); } // Otherwise, begin printing the response page. else { // Print HTTP header and opening HTML tags. Console.WriteLine("Content-type: text/html\n"); Console.WriteLine("<html>\n <head>\n"); // Print out title of page Console.WriteLine(config["title"] != null ? $" <title>{config["title"]}</title>\n" : " <title>Thank You</title>\n"); Console.WriteLine(" </head>\n <body"); // Get Body Tag Attributes // Implement body_attributes function logic here Console.WriteLine(">\n <center>\n"); // Print custom or generic title. Console.WriteLine(config["title"] != null ? $" <h1>{config["title"]}</h1>\n" : " <h1>Thank You For Filling Out This Form</h1>\n"); Console.WriteLine("</center>\n"); Console.WriteLine($"Below is what you submitted to {config["recipient"]} "); Console.WriteLine("<br>on " + DateTime.Now + "<p><hr size=1 width=75%><p>\n"); //BSS Table output for HTML // Also realname and email fields Console.WriteLine("<table cellspacing=2 cellpadding=1>"); if (!string.IsNullOrEmpty(form["realname"])) { Console.WriteLine($"<tr><td align=right><b>Name:</b></td><td align=left>{form["realname"]}</td></tr>\n"); } if (!string.IsNullOrEmpty(form["email"])) { Console.WriteLine($"<tr><td align=right><b>E-mail:</b></td><td align=left>{form["email"]}</td></tr>\n\n"); } //BSS // Sort alphabetically if specified: foreach (string field in form.Keys) { // If the field has a value or the print blank fields option is turned on, print out the form field and value. if (config["print_blank_fields"] != null || !string.IsNullOrEmpty(form[field])) { //BSS - table output Console.WriteLine($"<tr><td align=right>{field}:</td><td align=left>{form[field]}</td></tr>\n"); //BSS } } //BSS Console.WriteLine("</table><br clear=all>\n"); //BSS Console.WriteLine("<p><hr size=1 width=75%><p>\n"); // Check for a Return Link and print one if found. if (!string.IsNullOrEmpty(config["return_link_url"]) && !string.IsNullOrEmpty(config["return_link_title"])) { Console.WriteLine("<ul>\n"); Console.WriteLine($"<li><a href=\"{config["return_link_url"]}\">{config["return_link_title"]}</a>\n"); Console.WriteLine("</ul>\n"); } // Print the page footer. Console.WriteLine("<hr size=1 width=75%><p>\n"); Console.WriteLine("</body>\n</html>"); } } } ``` In this C# code, I've used the `Console.WriteLine` statements to simulate the output that would be sent to the response stream in a CGI environment. You may need to adapt this code to fit the specific environment or framework you are using. The HTML output has been modified accordingly to match C# syntax. Adjustments may be needed based on your specific requirements.
Editor is loading...
Leave a Comment