예제 #1
0
        public void Append(IIdentity id, long expectedVersion, IEnumerable <IEvent> events)
        {
            Condition.Requires(id, "id").IsNotNull();
            Condition.Requires(expectedVersion, "expectedVersion").IsGreaterOrEqual(0);
            Condition.Requires(events, "events").IsNotNull();

            foreach (IEvent e in events)
            {
                byte[] data = Serializer.Serialize(e);
                AppendOnlyStore.Append(id.Literal, data, expectedVersion);
                ++expectedVersion;
            }
        }
예제 #2
0
        public EventStream Load(IIdentity id)
        {
            Condition.Requires(id, "id").IsNotNull();

            NamedDataSet data = AppendOnlyStore.Load(id.Literal);

            if (data == null)
            {
                return(null);
            }

            List <IEvent> events = new List <IEvent>(data.Data.Select(d => (IEvent)Serializer.Deserialize(d)));
            EventStream   s      = new EventStream(data.Version, events);

            return(s);
        }
예제 #3
0
        public IEnumerable <EventStoreItem> ReadFrom(long id, int count)
        {
            IEnumerable <DataItem> data = AppendOnlyStore.ReadFrom(id, count);

            return(data.Select(d => new EventStoreItem(d.Id, d.Name, (IEvent)Serializer.Deserialize(d.Data))));
        }
예제 #4
0
 protected override void TearDown()
 {
     AppendOnlyStore.Dispose();
     base.TearDown();
 }