public Session(string appID, MobileAnalyticsManagerConfig maConfig) { _maConfig = maConfig; _appId = appID; #if BCL _sessionStorageFileName = InternalSDKUtils.DetermineAppLocalStoragePath(appID + _sessionStorageFileName); #elif PCL _sessionStorageFileFullPath = System.IO.Path.Combine(PCLStorage.FileSystem.Current.LocalStorage.Path, appID + _sessionStorageFileName); #endif _sessionStorage = new SessionStorage(); }
public Session(string appID, MobileAnalyticsManagerConfig maConfig) { _maConfig = maConfig; _appID = appID; #if BCL _sessionStorageFileFullPath = InternalSDKUtils.DetermineAppLocalStoragePath(appID + _sessionStorageFileName); #elif PCL _sessionStorageFileFullPath = System.IO.Path.Combine(PCLStorage.FileSystem.Current.LocalStorage.Path, appID + _sessionStorageFileName); #endif _logger.InfoFormat("Initialize a new session. The session storage file is {0}.", _sessionStorageFileFullPath); _sessionStorage = new SessionStorage(); }
/// <summary> /// Constructor of <see cref="Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.DeliveryClient"/> class. /// </summary> /// <param name="maConfig">Mobile Analytics Manager configuration. <see cref="Amazon.MobileAnalytics.MobileAnalyticsManager.MobileAnalyticsManagerConfig"/></param> /// <param name="clientContext">An instance of ClientContext. <see cref="Amazon.Runtime.Internal.ClientContext"/></param> /// <param name="credentials">An instance of Credentials. <see cref="Amazon.Runtime.AWSCredentials"/></param> /// <param name="regionEndPoint">Region endpoint. <see cref="Amazon.RegionEndpoint"/></param> /// <param name="maManager">Mobile Analytics Manager instance. <see cref="Amazon.MobileAnalytics.MobileAnalyticsManager.MobileAnalyticsManager"/></param> public DeliveryClient(MobileAnalyticsManagerConfig maConfig, ClientContext clientContext, AWSCredentials credentials, RegionEndpoint regionEndPoint, MobileAnalyticsManager maManager) : this(new DeliveryPolicyFactory(maConfig.AllowUseDataNetwork), maConfig, clientContext, credentials, regionEndPoint, maManager) { }
/// <summary> /// Constructor of <see cref="Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.SQLiteEventStore"/> /// </summary> /// <param name="maConfig">Mobile Analytics Manager Configuration.</param> public SQLiteEventStore(MobileAnalyticsManagerConfig maConfig) { _maConfig = maConfig; }
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, CommonTests.Framework.TestRunner.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(); Task.Delay(TimeSpan.FromSeconds(maConfig.SessionTimeout - 1)).Wait(); session.Resume(); // make sure session is not expired DateTime startTime2 = session.StartTime; string sessionId2 = session.SessionId; Assert.IsTrue(startTime1 == startTime2); Assert.IsTrue(sessionId1 == sessionId2); // sleep longer until session expires session.Pause(); Task.Delay(TimeSpan.FromSeconds(maConfig.SessionTimeout + 1)).Wait(); session.Resume(); // make sure session is expired DateTime startTime3 = session.StartTime; string sessionId3 = session.SessionId; Assert.IsTrue(startTime3 > startTime2); Assert.IsTrue(sessionId2 != sessionId3); // sleep for a while but wake up before session expires session.Pause(); Task.Delay(TimeSpan.FromSeconds(maConfig.SessionTimeout - 1)).Wait(); session.Resume(); // make sure session is not expired DateTime startTime4 = session.StartTime; string sessionId4 = session.SessionId; Assert.IsTrue(startTime4 == startTime3); Assert.IsTrue(sessionId4 == sessionId3); // sleep longer until session expires session.Pause(); Task.Delay(TimeSpan.FromSeconds(maConfig.SessionTimeout + 1)).Wait(); session.Resume(); // make sure session is expired DateTime startTime5 = session.StartTime; string sessionId5 = session.SessionId; Assert.IsTrue(startTime5 > startTime4); Assert.IsTrue(sessionId5 != sessionId4); }
public void TestEventStore() { // Create table MobileAnalyticsManagerConfig maConfig = new MobileAnalyticsManagerConfig(); SQLiteEventStore eventStore = new SQLiteEventStore(maConfig); // Insert row string eventString = "TestEventStore-dummy-event-string"; string appId = Guid.NewGuid().ToString(); const int EVENT_COUNT = 100; // Add events for (int i = 0; i < EVENT_COUNT / 2; i++) { eventStore.PutEvent(eventString, appId); } long dbFileSizeSmall = eventStore.GetDatabaseSize(); for (int i = 0; i < EVENT_COUNT / 2; i++) { eventStore.PutEvent(eventString, appId); } long dbFileSizeBigger = eventStore.GetDatabaseSize(); //Assert.IsTrue(dbFileSizeBigger > dbFileSizeSmall); Console.WriteLine("The num of events are {0}", eventStore.NumberOfEvents(appId)); Assert.AreEqual(EVENT_COUNT, eventStore.NumberOfEvents(appId)); // Delete EVENT_COUNT / 2 rows List <JsonData> allEventList = eventStore.GetEvents(appId, EVENT_COUNT / 2); List <string> deleteEventsIdList = new List <string>(); foreach (JsonData eventData in allEventList) { deleteEventsIdList.Add(eventData["id"].ToString()); } Console.WriteLine("The num of events are {0}", eventStore.NumberOfEvents(appId)); eventStore.DeleteEvent(deleteEventsIdList); Console.WriteLine("The num of events are {0}", eventStore.NumberOfEvents(appId)); // check row num again Assert.AreEqual(EVENT_COUNT / 2, eventStore.NumberOfEvents(appId)); // insert EVENT_COUNT / 2 rows again for (int i = 0; i < EVENT_COUNT / 2; i++) { eventStore.PutEvent(eventString, appId); } Console.WriteLine("The num of events are {0}", eventStore.NumberOfEvents(appId)); Assert.AreEqual(EVENT_COUNT, eventStore.NumberOfEvents(appId)); Console.WriteLine("The num of events are {0}", eventStore.NumberOfEvents(appId)); // remove all rows allEventList = eventStore.GetEvents(appId, EVENT_COUNT); deleteEventsIdList = new List <string>(); foreach (JsonData eventData in allEventList) { deleteEventsIdList.Add(eventData["id"].ToString()); } eventStore.DeleteEvent(deleteEventsIdList); Console.WriteLine("The num of events are {0}", eventStore.NumberOfEvents(appId)); Assert.AreEqual(0, eventStore.NumberOfEvents(appId)); }
#pragma warning restore 414 /// <summary> /// Constructor of <see cref="Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.SQLiteEventStore"/> /// </summary> /// <param name="maConfig">Mobile Analytics Manager Configuration.</param> public SQLiteEventStore(MobileAnalyticsManagerConfig maConfig) { _maConfig = maConfig; SetupSQLiteEventStore(); }
/// <summary> /// Constructor of <see cref="Amazon.MobileAnalytics.MobileAnalyticsManager.Internal.FileEventStore"/> /// </summary> /// <param name="maConfig">Mobile Analytics Manager Configuration.</param> public FileEventStore(MobileAnalyticsManagerConfig maConfig) { _maConfig = maConfig; SetupSQLiteEventStore(); }