コード例 #1
0
ファイル: OfflineManager.cs プロジェクト: uiahhh/sdk-csharp
        /// <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;
        }
コード例 #2
0
        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);
        }