public virtual void UpdateUserSubscription(UserSubscription subscription) { var subscriptions = Subscriptions[subscription.SubscriberUserId]; var subscriptionToUpdate = subscriptions.First(x => x.Id == subscription.Id); var index = subscriptions.IndexOf(subscriptionToUpdate); subscriptions[index] = subscription; subscription.UpdateType = UpdateType.Update; var args = new UserSubscriptionUpdatedEventArgs { Subscription = subscription }; UserSubscriptionUpdated?.Invoke(this, args); }
public virtual void RemoveUserSubscription(string subscriptionId) { var sub = this.GetUserSubscription(subscriptionId); var subscriptions = Subscriptions[sub.SubscriberUserId]; var subscriptionToRemove = subscriptions.First(x => x.Id == subscriptionId); subscriptions.Remove(subscriptionToRemove); subscriptionToRemove.UpdateType = UpdateType.Remove; var args = new UserSubscriptionUpdatedEventArgs { Subscription = subscriptionToRemove }; UserSubscriptionUpdated?.Invoke(this, args); }
public virtual void AddUserSubscription(UserSubscription subscription) { subscription.Id = (++IndexCounter).ToString(); if (!Subscriptions.TryGetValue(subscription.SubscriberUserId, out var subscriptions)) { Subscriptions.Add(subscription.SubscriberUserId, subscriptions = new List <UserSubscription>()); } subscriptions.Add(subscription); subscription.UpdateType = UpdateType.Add; var args = new UserSubscriptionUpdatedEventArgs { Subscription = subscription }; UserSubscriptionUpdated?.Invoke(this, args); }