Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.Session.Resume C# (CSharp) Метод

Resume() публичный Метод

Resume this session.
public Resume ( ) : void
Результат void
        public void Resume()
        {
            lock (_lock)
            {
                if (this.StopTime == null)
                {
                    //this may sometimes be a valid scenario e.g when the applciation starts
                    _logger.InfoFormat("Call Resume() without calling Pause() first. But this can be valid opertion only when MobileAnalyticsManager instance is created.");
                    return;
                }

                DateTime currentTime = DateTime.UtcNow;
                if (this.StopTime.Value < currentTime)
                {
                    // new session 
                    if (Convert.ToInt64((currentTime - this.StopTime.Value).TotalMilliseconds) > _maConfig.SessionTimeout * 1000)
                    {
                        StopSessionHelper();
                        NewSessionHelper();
                    }
                    // resume old session
                    else
                    {
                        ResumeSessionHelper();
                    }
                }
                else
                {
                    InvalidOperationException e = new InvalidOperationException();
                    _logger.Error(e, "Session stop time is earlier than start time !");
                }
            }
        }
        #endregion

Usage Example

Пример #1
0
        public void TestSessionTimeout()
        {
            MobileAnalyticsManagerConfig maConfig = new MobileAnalyticsManagerConfig();

            Console.WriteLine("session delta is " + maConfig.SessionTimeout);

            string appID = Guid.NewGuid().ToString();

            // create AmazonMobileAnayticsManager instance
            MobileAnalyticsManager.GetOrCreateInstance(appID, Credentials, RegionEndpoint.USEast1, maConfig);
            Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.Session session = new Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.Session(appID, new MobileAnalyticsManagerConfig());
            session.Start();
            DateTime startTime1 = session.StartTime;
            string   sessionId1 = session.SessionId;

            // sleep for a while but wake up before session expires
            session.Pause();
            Thread.Sleep(Convert.ToInt32((maConfig.SessionTimeout - 1) * 1000));
            session.Resume();

            // make sure session is not expired
            DateTime startTime2 = session.StartTime;
            string   sessionId2 = session.SessionId;

            Assert.IsTrue(startTime1 == startTime2 && sessionId1 == sessionId2);

            // sleep longer until session expires
            session.Pause();
            Thread.Sleep(Convert.ToInt32((maConfig.SessionTimeout + 1) * 1000));
            session.Resume();

            // make sure session is expired
            DateTime startTime3 = session.StartTime;
            string   sessionId3 = session.SessionId;

            Assert.IsTrue(startTime3 > startTime2 && sessionId2 != sessionId3);

            // sleep for a while but wake up before session expires
            session.Pause();
            Thread.Sleep(Convert.ToInt32((maConfig.SessionTimeout - 1) * 1000));
            session.Resume();

            // make sure session is not expired
            DateTime startTime4 = session.StartTime;
            string   sessionId4 = session.SessionId;

            Assert.IsTrue(startTime4 == startTime3 && sessionId4 == sessionId3);

            // sleep longer until session expires
            session.Pause();
            Thread.Sleep(Convert.ToInt32((maConfig.SessionTimeout + 1) * 1000));
            session.Resume();

            // make sure session is expired
            DateTime startTime5 = session.StartTime;
            string   sessionId5 = session.SessionId;

            Assert.IsTrue(startTime5 > startTime4 && sessionId5 != sessionId4);
        }
All Usage Examples Of Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.Session::Resume