コード例 #1
0
ファイル: MongoDBEventStore.cs プロジェクト: zonaid/ncqrs
        public void Store(UncommittedEventStream eventStream)
        {
            var commit = new MongoCommit
            {
                CommitId      = eventStream.CommitId,
                EventSourceId = eventStream.SourceId,
                FromVersion   = eventStream.InitialVersion,
                ToVersion     = eventStream.Last().EventSequence,
                Events        = eventStream.Select(e => e.EventIdentifier).ToArray(),
                Processed     = false
            };

            try
            {
                try
                {
                    SafellyInsertCommit(commit);
                    InsertEvents(eventStream);
                    MarkCommitAsProcessed(commit.CommitId);
                }
                catch
                {
                    RemoveUnprocessedCommit(commit.CommitId);
                    throw;
                }
            }
            catch (MongoSafeModeException ex)
            {
                if (ex.Message.Contains(CONCURRENCY_ERROR_CODE))
                {
                    throw new ConcurrencyException(eventStream.SourceId, -1);
                }
            }
        }
コード例 #2
0
ファイル: MongoDBEventStore.cs プロジェクト: otemnov/ncqrs
        public void Store(UncommittedEventStream eventStream)
        {
            var commit = new MongoCommit
            {
                CommitId = eventStream.CommitId,
                EventSourceId = eventStream.SourceId,
                FromVersion = eventStream.InitialVersion,
                ToVersion = eventStream.Last().EventSequence,
                Events = eventStream.Select(e=>e.EventIdentifier).ToArray(),
                Processed = false
            };

            try
            {
                try
                {
                    SafellyInsertCommit(commit);
                    InsertEvents(eventStream);
                    MarkCommitAsProcessed(commit.CommitId);
                }
                catch
                {
                    RemoveUnprocessedCommit(commit.CommitId);
                    throw;
                }
            }
            catch (MongoSafeModeException ex)
            {
                if (ex.Message.Contains(CONCURRENCY_ERROR_CODE))
                    throw new ConcurrencyException(eventStream.SourceId, -1);
            }
        }