private void SaveEvents(Guid aggregateId, long uncomittedVersion, IEnumerable <IEvent> uncommittedEvents) { using (var ctx = new EventStoreContext()) { long eventVersion = uncomittedVersion; foreach (IEvent evnt in uncommittedEvents) { eventVersion++; evnt.Id = aggregateId; evnt.Version = eventVersion; ctx.AddToEvents(new Event { AggregateId = evnt.Id, Version = evnt.Version, Data = ToBinary(converter.Convert(evnt)), Type = evnt.GetType().Name }); } ctx.SaveChanges(); } }
/// <summary> /// Saves a snapshot of the specified event source. /// </summary> public void SaveShapShot(IEventSource source) { using (var ctx = new EventStoreContext()) { IMemento memento = source.GetMemento(); ctx.AddToSnapshots(new Snapshot { Data = ToBinary(converter.Convert(memento)), AggregateId = source.Id, Version = source.Version, Type = memento.GetType().Name }); ctx.SaveChanges(); } }