protected override void Serialize()
 {
     Setting[VisitorIdKey]                = _visitorId;
     Setting[UseCountKey]                 = _useCount.ToString(CultureInfo.InvariantCulture);
     Setting[CheckinCountKey]             = _checkinCount.ToString(CultureInfo.InvariantCulture);
     Setting[SessionStartTimeKey]         = _sessionStartTime;
     Setting[PreviousSessionStartTimeKey] = _previousSessionStartTime;
     Setting[VisitorStartTimeKey]         = _visitorStartTime;
     Setting[LastEventTimeKey]            = UnixDate.ToString(_lastEventTime);
 }
        protected override void Deserialize()
        {
            string imp;

            if (Setting.TryGetValue(VisitorIdKey, out imp))
            {
                _visitorId = imp;
            }
            else
            {
                _visitorId = GenerateNewVisitorId();
            }

            if (Setting.TryGetValue(UseCountKey, out imp))
            {
                int i;
                if (int.TryParse(imp, NumberStyles.Integer, CultureInfo.InvariantCulture, out i))
                {
                    _useCount = i;
                }
            }

            if (Setting.TryGetValue(CheckinCountKey, out imp))
            {
                int i;
                if (int.TryParse(imp, NumberStyles.Integer, CultureInfo.InvariantCulture, out i))
                {
                    _checkinCount = i;
                }
            }

            if (Setting.TryGetValue(SessionStartTimeKey, out imp))
            {
                // Set to the previous now.
                _previousSessionStartTime = imp;
            }

            if (Setting.TryGetValue(LastEventTimeKey, out imp))
            {
                _lastEventTime = UnixDate.ToDateTime(imp);
            }

            // The new session start time.
            _sessionStartTime = UnixDate.ToString(DateTime.UtcNow);

            if (Setting.TryGetValue(VisitorStartTimeKey, out imp))
            {
                _visitorStartTime = imp;
            }
            if (string.IsNullOrEmpty(_visitorStartTime))
            {
                _visitorStartTime = UnixDate.ToString(DateTime.UtcNow);
            }

            PriorityQueue.AddWorkItem(
                () =>
            {
                ++UseCount;
                SaveSoon();
            });

            base.Deserialize();
        }
Exemplo n.º 3
0
 private static string GenerateTimestamp(DateTimeOffset dateTime)
 {
     return(UnixDate.ToString(dateTime));
 }