Ejemplo n.º 1
0
        private LocalSessionTracker ValidateGlobalSessionAndGetLocalSessionTracker(GlobalSession globalSession)
        {
            LocalSessionTracker localSessionTracker = _sessionTrackers[globalSession.Owner()];

            if (localSessionTracker == null || !localSessionTracker.GlobalSessionId.Equals(globalSession.SessionId()))
            {
                localSessionTracker = new LocalSessionTracker(globalSession.SessionId(), new Dictionary <long, long>());
                _sessionTrackers[globalSession.Owner()] = localSessionTracker;
            }

            return(localSessionTracker);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Tracks the operation and returns true iff this operation should be allowed.
        /// </summary>
        public virtual bool ValidateOperation(GlobalSession globalSession, LocalOperationId localOperationId)
        {
            LocalSessionTracker existingSessionTracker = _sessionTrackers[globalSession.Owner()];

            if (IsNewSession(globalSession, existingSessionTracker))
            {
                return(IsFirstOperation(localOperationId));
            }
            else
            {
                return(existingSessionTracker.IsValidOperation(localOperationId));
            }
        }