using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Text; using System.ConsoleApp; using System.ConsoleApp.Commands; namespace Speech.Commands { [ConsoleCommand("server")] public class server : BaseCommand { public static bool execute(string line, string cmd, NameValueCollection arguments) { switch(arguments["general"].ToLower()) { case "stop": Program.api.Stop(); WriteLine("Server stopped"); break; case "start": Program.api.Start(); WriteLine("Server started"); break; case "restart": Program.api.Stop(); Program.api.Start(); break; case "state": WriteLine(new NameValueCollection() { {"Server Name", Program.api.ServerName }, {"Port",Program.api.Port.ToString() }, {"Running", Program.api.Running?"True":"False" }, {"Allowed Methods",Program.api.AllowedMethods.ToString() }, {"Use WebFolder",Program.api.UseWebDirectory?"True":"False" }, {"Web Folder",Program.api.WebDirectory }, {"Allow empty result", Program.api.AllowEmptyResponse?"True":"False" }, {"Compression", Program.api.Compression?"True":"False" } }); break; case "routes": case "route": foreach(System.Net.ApiService.RouteElements elem in Program.api.Routes) { if((elem.Method | System.Net.ApiService.HttpMethod.GET) == elem.Method) { Write("GET ", ConsoleColor.Blue); WriteLine(" | " + elem.Path); } if ((elem.Method | System.Net.ApiService.HttpMethod.POST) == elem.Method) { Write("POST ", ConsoleColor.Blue); WriteLine(" | " + elem.Path); } if ((elem.Method | System.Net.ApiService.HttpMethod.PUT) == elem.Method) { Write("PUT ", ConsoleColor.Blue); WriteLine(" | " + elem.Path); } if ((elem.Method | System.Net.ApiService.HttpMethod.OPTIONS) == elem.Method) { Write("OPTIONS ", ConsoleColor.Blue); WriteLine(" | " + elem.Path); } if ((elem.Method | System.Net.ApiService.HttpMethod.DELETE) == elem.Method) { Write("DELETE ", ConsoleColor.Blue); WriteLine(" | " + elem.Path); } if ((elem.Method | System.Net.ApiService.HttpMethod.CONNECT) == elem.Method) { Write("CONNECT", ConsoleColor.Blue); WriteLine(" | " + elem.Path); } if ((elem.Method | System.Net.ApiService.HttpMethod.PATCH) == elem.Method) { Write("PATCH ", ConsoleColor.Blue); WriteLine(" | " + elem.Path); } if ((elem.Method | System.Net.ApiService.HttpMethod.TRACE) == elem.Method) { Write("TRACE ", ConsoleColor.Blue); WriteLine(" | " + elem.Path); } } break; } return false; } } }