public override void OnGet(HttpListenerRequest request, HttpListenerResponse response) { JObject obj = new JObject() { { "result", true }, { "ports", new JArray(SerialIO.GetPortNames().ToArray()) }, { "wifi", CoreState.SettingsInstance.useWifi } }; ResponseFactory.GenerateResponse(response, obj.ToString()); }
public async Task <Response <T> > GetAsync <T>(string uriExtension) { try { var response = await GetResponseAsync(uriExtension); return(await ResponseFactory.GenerateResponse <T>(response)); } catch (Exception) { SetRediscoverServiceUri(); throw; } }
public async Task <Response <TReturn> > PostAsync <TReturn, TMessage>(string uriExtension, TMessage message) { try { var client = await GetHttpClient(); var response = await client.PostAsJsonAsync(_absoluteUri + uriExtension, message); return(await ResponseFactory.GenerateResponse <TReturn>(response)); } catch (Exception) { SetRediscoverServiceUri(); throw; } }
public async Task <Response <TResponse> > GetAbsoluteAsync <TResponse>(string absoluteUri) { try { var client = await GetHttpClient(); var response = await client.GetAsync(absoluteUri); return(await ResponseFactory.GenerateResponse <TResponse>(response)); } catch (Exception) { SetRediscoverServiceUri(); throw; } }
public override void OnPost(HttpListenerRequest request, HttpListenerResponse response) { if (!CoreState.HasCloseRequested) { CoreState.HasCloseRequested = true; // TODO i should use this instead of closing the application directly string jsonResponse = "{\"result\":true}"; ResponseFactory.GenerateResponse(response, jsonResponse); CoreState.DisposableElements.ForEach(e => e()); SettingsManager.SaveSettings(); // System.Environment.Exit(0); //TODO also, i have to close every thing that must be closed (serial, http server, etc) // Bug: if I use System.Env.exit, every method after this invocation is not called. } }
public override void OnPost(HttpListenerRequest request, HttpListenerResponse response) { if (request.ContentType == null) { ConsoleManager.LogError("Missing Content-Type in " + ActionName); return; } if (!request.ContentType.Equals("application/json")) { return; //TODO Create exception } // Get request body: string jsonBody = ResponseFactory.JsonStringFromRequest(request); //Parse body and get port value JToken t = JToken.Parse(jsonBody); string port = (string)t.SelectToken("port"); bool? useWifi = (bool?)t.SelectToken("wifi"); // Set port value CoreState.SettingsInstance.COMPort = port; //Set if use wifi to communicate CoreState.SettingsInstance.useWifi = useWifi.GetValueOrDefault(false); if (!useWifi.Value) { // Starts the SerialManager SerialManager.ManagerInstance.Start(); } else { // Set udp port, start WifiManager if (int.TryParse(port, out int value)) { CoreState.SettingsInstance.WifiServerPort = value; WifiManager.ManagerInstance.Start(); } } string jsonResponse = "{\"result\":true}"; ResponseFactory.GenerateResponse(response, jsonResponse); SettingsManager.SaveSettings(); }
public override void OnPost(HttpListenerRequest request, HttpListenerResponse response) { // Check if the request has the correct json content if (request.ContentType == null) { ConsoleManager.LogError("Missing Content-Type in " + ActionName); return; } if (!request.ContentType.Equals("application/json")) { return; } string jsonBody = ResponseFactory.JsonStringFromRequest(request); // Data parsing: JToken t = JToken.Parse(jsonBody); int componentId = (int)t.SelectToken("id"); JObject obj = (JObject)t.SelectToken("data"); DigitalActionType eventType = (DigitalActionType)(int)obj.SelectToken("action"); switch (eventType) { case DigitalActionType.None: InputDispatcher.UpdatePushButtonAction(componentId, null); break; case DigitalActionType.LaunchApp: string actionName = (string)obj.SelectToken("name"); string appPath = (string)obj.SelectToken("path"); InputDispatcher.UpdatePushButtonAction(componentId, new ActionRunProgram(actionName) { FullAppDirectory = appPath, AppName = actionName }); break; case DigitalActionType.OpenWebsite: string uri = (string)obj.SelectToken("websiteUri"); string name = (string)obj.SelectToken("name"); var action = new ActionOpenWebsite() { WebsiteName = name, WebsiteUri = uri }; action.Init(); InputDispatcher.UpdatePushButtonAction(componentId, action); break; case DigitalActionType.Macro: ActionRunMacro.MacroType macroType = (ActionRunMacro.MacroType)(int) obj.SelectToken("macroType"); string macroText = (string)obj.SelectToken("macroText"); InputDispatcher.UpdatePushButtonAction(componentId, new ActionRunMacro(macroType, macroText)); break; // TODO add selected keys to execute macro } // Store new action mapping: InputDispatcher.UpdateActionMappingFile(); // Send response to the frontend string jsonResponse = "{\"result\":true}"; ResponseFactory.GenerateResponse(response, jsonResponse); }
public override void OnGet(HttpListenerRequest request, HttpListenerResponse response) { ResponseFactory.GenerateResponse(response, "{\"status\":" + CoreState.SettingsInstance.IsFirstLaunch.ToString().ToLower() + "}"); }
public override void OnGet(HttpListenerRequest request, HttpListenerResponse response) { ResponseFactory.GenerateResponse(response, InputDispatcher.ObjectsToJSON()); }