Ejemplo n.º 1
0
            public void HandleMessage(TSM message)
            {
                var cmd = TheCommonUtils.cdeSplit(message.TXT, ":", false, false);

                switch (cmd[0])
                {
                case nameof(TheThing.MsgSubscribeToThings):
                {
                    TheCommRequestResponse.DoHandleMessage <MsgSubscribeToThings <TSubscription>, MsgSubscribeToThingsResponse>(message,
#if !CDE_NET4
                                                                                                                                async
#endif
                                                                                                                                    (request, response) =>
                        {
                            response.SubscriptionStatus = new List <TheThing.TheThingSubscriptionStatus>();
                            foreach (var subscription in request.SubscriptionRequests)
                            {
#if !CDE_NET4
                                response.SubscriptionStatus.Add(await _subscribeHandler(subscription));
#else
                                response.SubscriptionStatus.Add(_subscribeHandler(subscription).Result);
#endif
                            }
                            _refreshSubscriptionStateHandler();
                        }
                                                                                                                                );
                    break;
                }

                case nameof(TheThing.MsgGetThingSubscriptions):
                {
                    TheCommRequestResponse.DoHandleMessage <MsgGetThingSubscriptions, MsgGetThingSubscriptionsResponse <TSubscription> >(message, (request, response) =>
                        {
                            response.ThingSubscriptions = _getSubscriptionsHandler(request.Generalize ?? false);
                        });
                    break;
                }

                case nameof(TheThing.MsgUnsubscribeFromThings):
                {
                    TheCommRequestResponse.DoHandleMessage <TheThing.MsgUnsubscribeFromThings, TheThing.MsgUnsubscribeFromThingsResponse>(message, (request, response) =>
                        {
                            response.Failed = _unsubscribeHandler(request.SubscriptionIds, request.UnsubscribeAll);
                        }
                                                                                                                                          );
                    break;
                }

                default:
                    break;
                }
            }