public void OnChannelGroupReady(IChannelGroup channelGroup, string appSecret) { MobileCenterLog.Warn(MobileCenterLog.LogTag, "Crashes service is not yet supported on this platform."); try { #if REFERENCE #else WatsonRegistrationManager.Start(appSecret); #pragma warning disable CS0612 // Type or member is obsolete MobileCenter.CorrelationIdChanged += (s, id) => { WatsonRegistrationManager.SetCorrelationId(id.ToString()); }; // Checking for null and setting id needs to be atomic to avoid // overwriting Guid newId = Guid.NewGuid(); MobileCenter.TestAndSetCorrelationId(Guid.Empty, ref newId); #pragma warning restore CS0612 // Type or member is obsolete #endif } catch (Exception e) { #if DEBUG throw new MobileCenterException("Failed to register crashes with Watson", e); #endif } }
public void EmptyCorrelationIdIsSetWhenSessionStarts() { #pragma warning disable CS0612 // Type or member is obsolete // Correlation ID is Empty. MobileCenter.Instance.InstanceCorrelationId = Guid.Empty; _sessionTracker.Resume(); // Guid.Empty should not be equal to correlation id. Assert.IsFalse(MobileCenter.TestAndSetCorrelationId(Guid.Empty, ref MobileCenter.Instance.InstanceCorrelationId)); #pragma warning restore CS0612 // Type or member is obsolete }
public void VerifyCorrelationIdIsUpdatedWhenSessionChanges() { #pragma warning disable CS0612 // Type or member is obsolete _sessionTracker.Resume(); // Cause session expiration and start new session. _sessionTracker.Pause(); Task.Delay((int)SessionTracker.SessionTimeout).Wait(); _sessionTracker.Resume(); Assert.IsTrue(MobileCenter.TestAndSetCorrelationId(_sessionTracker._sid, ref MobileCenter.Instance.InstanceCorrelationId)); #pragma warning restore CS0612 // Type or member is obsolete }
private void SendStartSessionIfNeeded() { var now = TimeHelper.CurrentTimeInMilliseconds(); if (_sid != Guid.Empty && !HasSessionTimedOut(now)) { return; } if (_sessions.Count == StorageMaxSessions) { _sessions.Remove(_sessions.Keys.Min()); } _sid = Guid.NewGuid(); #pragma warning disable CS0612 // Type or member is obsolete MobileCenter.TestAndSetCorrelationId(Guid.Empty, ref _sid); #pragma warning restore CS0612 // Type or member is obsolete _sessions.Add(now, _sid); _applicationSettings.SetValue(StorageKey, SessionsAsString()); _lastQueuedLogTime = TimeHelper.CurrentTimeInMilliseconds(); var startSessionLog = new StartSessionLog { Sid = _sid }; _channel.EnqueueAsync(startSessionLog); }