public BsonDocument SerializeTransitionId(TransitionId transitionId)
 {
     return new BsonDocument
     {
         { "StreamId", transitionId.StreamId },
         { "Version", transitionId.Version }
     };
 }
 public BsonDocument SerializeTransitionId(TransitionId transitionId)
 {
     return(new BsonDocument
     {
         { "StreamId", transitionId.StreamId },
         { "Version", transitionId.Version }
     });
 }
        private string MakeEventCommandTargetSentence(
            EventCommandSentenceResolver resolver)
        {
            if (TransitionId == TransitionInstantId)
            {
                return(EventCommandSentenceFormatInstant);
            }

            var(isFound, name) = resolver.GetDatabaseDataName(DBKind.System, TransitionTypeId, TransitionId);

            var nameStr = isFound && !TransitionId.IsVariableAddressSimpleCheck()
                ? name
                : EventCommandSentenceResolver_Database_Basic.DatabaseDataNotFound;

            return(string.Format(EventCommandSentenceFormatEtc,
                                 TransitionId.ToString(), nameStr));
        }
        /// <summary>
        /// Append transition
        /// </summary>
        public void Append(ITransition transition)
        {
            _lock.EnterWriteLock();

            try
            {
                var key = new TransitionId(transition.StreamId, transition.StreamVersion);

                if (_indexByTransactionId.ContainsKey(key))
                    throw new TransitionAlreadyExistsException(transition.StreamId, transition.StreamVersion);

                List<ITransition> stream;
                if (!_indexByStreamId.TryGetValue(transition.StreamId, out stream))
                    _indexByStreamId[transition.StreamId] = stream = new List<ITransition>();

                stream.Add(transition);
                _indexByTransactionId[key] = transition;
                _transitions.Add(transition);
            }
            finally
            {
                _lock.ExitWriteLock();
            }
        }