Exemplo n.º 1
0
        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
            }
        }
Exemplo n.º 2
0
        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
        }
Exemplo n.º 3
0
        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);
        }