/// <summary> /// This is used to verify if the user that has logged in /// is the same that before, if not this will Reject every query in the Queue /// and clear all subscriptions, otherwise this will replay the Queue if it is waiting. /// </summary> internal override void OnUserLoggedIn(object sender, UserLoggedInEvent e) { if (previousKUID != e.Kuid) { if (AutoRecover && QueryReplayer.WaitLoginToReplay) { QueryReplayer.RejectAllQueries(new UnauthorizeException("Request submitted by another user")); QueryReplayer.Lock = false; QueryReplayer.WaitLoginToReplay = false; } SubscriptionRecoverer.Clear(); } else { if (AutoRecover && QueryReplayer.WaitLoginToReplay) { QueryReplayer.ReplayQueries(); QueryReplayer.Lock = false; QueryReplayer.WaitLoginToReplay = false; } SubscriptionRecoverer.RenewSubscriptions(); } previousKUID = e.Kuid; }
public void SuccessClear() { subscriptionRecoverer.Add(new KuzzleSdk.Offline.Subscription.Subscription("foo", "bar", new JObject() { }, null, "test", "1")); subscriptionRecoverer.Add(new KuzzleSdk.Offline.Subscription.Subscription("bar", "foo", new JObject() { }, null, "test", "1")); subscriptionRecoverer.Add(new KuzzleSdk.Offline.Subscription.Subscription("foobar", "barfoo", new JObject() { }, null, "test", "2")); subscriptionRecoverer.Add(new KuzzleSdk.Offline.Subscription.Subscription("barfoo", "foobar", new JObject() { }, null, "test", "2")); subscriptionRecoverer.Add(new KuzzleSdk.Offline.Subscription.Subscription("foobar", "foobar", new JObject() { }, null, "test", "2")); subscriptionRecoverer.Add(new KuzzleSdk.Offline.Subscription.Subscription("barfoo", "barfoo", new JObject() { }, null, "test", "3")); Assert.Equal(6, subscriptionRecoverer.Count); subscriptionRecoverer.Clear(); Assert.Equal(0, subscriptionRecoverer.Count); }