public async Task <bool> UnSubscribe(string sentinelHost, string packageHost, string stateValueName) { using (var client = new HomeConnectionClient(HomeHubConnection)) { var stateValueKey = new StateValueKey(sentinelHost, packageHost, stateValueName); if (_subscriptionsStore.ContainsKey(stateValueKey)) { var isSubscriptionDeleted = await client.Delete <bool>("subscription", $"{SentinelHost.GetName()}.{_subscriptionsStore[stateValueKey].Key}"); if (isSubscriptionDeleted) { RemoveSubscriptionToStore(stateValueKey); await UnSubscribeOnValueChanged(new StateValueKey(sentinelHost, packageHost, stateValueName)); } return(isSubscriptionDeleted); } } return(false); }
public async Task <StateValueKey> Send(string name, object value) { return(await Send(_sentinelHost.GetName(), _sentinelHost.GetPackageName(), name, value)); }
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 void LogInformation(string message) { var logger = LogManager.GetLogger(_sentinelHost.GetName()); logger.Info(AddAdditionalInformation(message)); }