Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }