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()); }
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); }
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; })); }