server.cs 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Collections.Specialized;
  4. using System.Text;
  5. using System.ConsoleApp;
  6. using System.ConsoleApp.Commands;
  7. namespace Speech.Commands {
  8. [ConsoleCommand("server")]
  9. public class server : BaseCommand {
  10. public static bool execute(string line, string cmd, NameValueCollection arguments) {
  11. switch(arguments["general"].ToLower()) {
  12. case "stop":
  13. Program.api.Stop();
  14. WriteLine("Server stopped");
  15. break;
  16. case "start":
  17. Program.api.Start();
  18. WriteLine("Server started");
  19. break;
  20. case "restart":
  21. Program.api.Stop();
  22. Program.api.Start();
  23. break;
  24. case "state":
  25. WriteLine(new NameValueCollection() {
  26. {"Server Name", Program.api.ServerName },
  27. {"Port",Program.api.Port.ToString() },
  28. {"Running", Program.api.Running?"True":"False" },
  29. {"Allowed Methods",Program.api.AllowedMethods.ToString() },
  30. {"Use WebFolder",Program.api.UseWebDirectory?"True":"False" },
  31. {"Web Folder",Program.api.WebDirectory },
  32. {"Allow empty result", Program.api.AllowEmptyResponse?"True":"False" },
  33. {"Compression", Program.api.Compression?"True":"False" }
  34. });
  35. break;
  36. case "routes":
  37. case "route":
  38. foreach(System.Net.ApiService.RouteElements elem in Program.api.Routes) {
  39. if((elem.Method | System.Net.ApiService.HttpMethod.GET) == elem.Method) {
  40. Write("GET ", ConsoleColor.Blue);
  41. WriteLine(" | " + elem.Path);
  42. }
  43. if ((elem.Method | System.Net.ApiService.HttpMethod.POST) == elem.Method) {
  44. Write("POST ", ConsoleColor.Blue);
  45. WriteLine(" | " + elem.Path);
  46. }
  47. if ((elem.Method | System.Net.ApiService.HttpMethod.PUT) == elem.Method) {
  48. Write("PUT ", ConsoleColor.Blue);
  49. WriteLine(" | " + elem.Path);
  50. }
  51. if ((elem.Method | System.Net.ApiService.HttpMethod.OPTIONS) == elem.Method) {
  52. Write("OPTIONS ", ConsoleColor.Blue);
  53. WriteLine(" | " + elem.Path);
  54. }
  55. if ((elem.Method | System.Net.ApiService.HttpMethod.DELETE) == elem.Method) {
  56. Write("DELETE ", ConsoleColor.Blue);
  57. WriteLine(" | " + elem.Path);
  58. }
  59. if ((elem.Method | System.Net.ApiService.HttpMethod.CONNECT) == elem.Method) {
  60. Write("CONNECT", ConsoleColor.Blue);
  61. WriteLine(" | " + elem.Path);
  62. }
  63. if ((elem.Method | System.Net.ApiService.HttpMethod.PATCH) == elem.Method) {
  64. Write("PATCH ", ConsoleColor.Blue);
  65. WriteLine(" | " + elem.Path);
  66. }
  67. if ((elem.Method | System.Net.ApiService.HttpMethod.TRACE) == elem.Method) {
  68. Write("TRACE ", ConsoleColor.Blue);
  69. WriteLine(" | " + elem.Path);
  70. }
  71. }
  72. break;
  73. }
  74. return false;
  75. }
  76. }
  77. }