Ejemplo n.º 1
0
        public object Any(UpdateEventSubscriber request)
        {
            var subscription = ServerEvents.GetSubscriptionInfo(request.Id);

            if (subscription == null)
            {
                throw HttpError.NotFound(ErrorMessages.SubscriptionNotExistsFmt.Fmt(request.Id));
            }

            var feature = HostContext.GetPlugin <ServerEventsFeature>();

            if (!feature.CanAccessSubscription(base.Request, subscription))
            {
                throw HttpError.Forbidden(ErrorMessages.SubscriptionForbiddenFmt.Fmt(request.Id));
            }

            if (request.UnsubscribeChannels != null)
            {
                ServerEvents.UnsubscribeFromChannels(subscription.SubscriptionId, request.UnsubscribeChannels);
            }
            if (request.SubscribeChannels != null)
            {
                ServerEvents.SubscribeToChannels(subscription.SubscriptionId, request.SubscribeChannels);
            }

            return(new UpdateEventSubscriberResponse());
        }
Ejemplo n.º 2
0
        public static void UpdateSubscriber(this ServerEventsClient client, UpdateEventSubscriber request)
        {
            if (request.Id == null)
            {
                request.Id = client.ConnectionInfo.Id;
            }
            client.ServiceClient.Post(request);

            client.Update(subscribe: request.SubscribeChannels, unsubscribe: request.UnsubscribeChannels);
        }
Ejemplo n.º 3
0
 public static Task UpdateSubscriberAsync(this ServerEventsClient client, UpdateEventSubscriber request)
 {
     if (request.Id == null)
     {
         request.Id = client.ConnectionInfo.Id;
     }
     return(client.ServiceClient.PostAsync(request)
            .Then(x => {
         client.Update(subscribe: request.SubscribeChannels, unsubscribe: request.UnsubscribeChannels);
         return null;
     }));
 }