async Task <bool> OnSettings(string information, int requestId, string body) { string replyBody; bool rc = true; switch (information) { case RoonApi.ServiceSettings + "/subscribe_settings": _subscriptionHandler.AddSubscription(body, requestId); replyBody = JsonConvert.SerializeObject(new SettingsAll { Settings = new LayoutAndSettings { Layout = _layout.ToArray(), Values = _values, HasError = false } }); rc = await _api.Reply("Subscribed", requestId, true, replyBody); break; case RoonApi.ServiceSettings + "/unsubscribe_settings": _subscriptionHandler.RemoveSubscription(body); rc = await _api.Reply("Unsubscribed", requestId); break; case RoonApi.ServiceSettings + "/get_settings": replyBody = JsonConvert.SerializeObject(new SettingsAll { Settings = new LayoutAndSettings { Layout = _layout.ToArray(), Values = _values, HasError = false } }); rc = await _api.Reply("Success", requestId, false, replyBody); break; case RoonApi.ServiceSettings + "/save_settings": var settings = JsonConvert.DeserializeObject <SaveSettings>(body); rc = await _functions[0].SaveSettings?.Invoke(settings); var settingsAll = new SettingsAll { Settings = new LayoutAndSettings { Layout = _layout.ToArray(), Values = _values, HasError = !rc } }; replyBody = JsonConvert.SerializeObject(settingsAll); rc = await _api.Reply(rc? "Success" : "NotValid", requestId, false, replyBody); // rc = await UpdateSettings(); break; case RoonApi.ServiceSettings + "/button_pressed": var button = JsonConvert.DeserializeObject <ButtonPressed>(body); rc = await _api.Reply("Success", requestId, false); rc = await _functions[0].ButtonPressed?.Invoke(button); break; } return(rc); }
public async Task <bool> UpdateSettings(bool hasError = false) { SettingsAll settings = new SettingsAll { Settings = new LayoutAndSettings { Layout = _layout.ToArray(), Values = _values, HasError = hasError } }; string replyBody = JsonConvert.SerializeObject(settings); var result = await _subscriptionHandler.ReplyAll(_api, "Changed", replyBody); return(true); }