public async Task <SubscriptionOnStateValue> Subscribe(string sentinelHost, string packageHost, string stateValueName) { using (var client = new HomeConnectionClient(HomeHubConnection)) { var stateValueKey = new StateValueKey(sentinelHost, packageHost, stateValueName); await SubscribeOnValueChanged(stateValueKey); var subscriptionKeyValue = await client.PostAsJson <string>("subscription", new Subscription(SentinelHost.GetName(), sentinelHost, packageHost, stateValueName)); if (!string.IsNullOrEmpty(subscriptionKeyValue)) { var subscriptionKey = new SubscriptionKey(subscriptionKeyValue); if (subscriptionKey.IsValid()) { var subscriptionOnStateValue = new SubscriptionOnStateValue(subscriptionKey, stateValueKey); AddSubscriptionInStore(stateValueKey, subscriptionOnStateValue); return(subscriptionOnStateValue); } } else { await UnSubscribeOnValueChanged(new StateValueKey(sentinelHost, packageHost, stateValueName)); } } return(null); }
public async Task <StateValueKey> Send(string sentinelName, string packageName, string name, object value) { var typeOfValue = value.GetType().GetTypeOfValue(); var stateValue = new StateValue(sentinelName, packageName, name, value, typeOfValue); using (var client = new HomeConnectionClient(HomeHubConnection)) { return(await client.PostAsJson <StateValueKey>("statesvalues", stateValue)); } }