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);
        }
Exemple #2
0
 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);
        }
Exemple #4
0
        public void LogInformation(string message)
        {
            var logger = LogManager.GetLogger(_sentinelHost.GetName());

            logger.Info(AddAdditionalInformation(message));
        }