Skip to content

Commit

Permalink
Simplify event store by re-using overloads
Browse files Browse the repository at this point in the history
  • Loading branch information
Tomas Lycken committed Nov 1, 2017
1 parent b24d2c3 commit 9119b23
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ public class EventStoreFixture<TId, TStreamId, TEvent, TEventMetadata, TPersiste
where TStreamId : IEquatable<TStreamId>
where TEvent : class, TEventMetadata, IMutableEvent<TStreamId>, new()
where TPersistedEvent : class, TEventMetadata, IPersistedEvent<TStreamId>, new()
where TEventMetadata : IEventMetadata<TStreamId>
where TEventMetadata : class, IEventMetadata<TStreamId>
{
public EventStoreFixture()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ namespace RdbmsEventStore.EntityFramework.Tests.Infrastructure
public class EventStoreTestBase<TId, TStreamId, TEvent, TEventMetadata, TPersistedEvent> : IClassFixture<EventStoreFixture<TId, TStreamId, TEvent, TEventMetadata, TPersistedEvent>>, IDisposable
where TId : IEquatable<TId>
where TStreamId : IEquatable<TStreamId>
where TEventMetadata : IEventMetadata<TStreamId>
where TEventMetadata : class, IEventMetadata<TStreamId>
where TEvent : class, TEventMetadata, IMutableEvent<TStreamId>, new()
where TPersistedEvent : class, TEventMetadata, IPersistedEvent<TStreamId>, new()
{
Expand Down
19 changes: 3 additions & 16 deletions src/RdbmsEventStore.EntityFramework/EntityFrameworkEventStore.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ public class EntityFrameworkEventStore<TId, TStreamId, TContext, TEvent, TEventM
where TContext : DbContext, IEventDbContext<TPersistedEvent>
where TEvent : class, TEventMetadata, IMutableEvent<TStreamId>, new()
where TPersistedEvent : class, IPersistedEvent<TStreamId>, TEventMetadata, new()
where TEventMetadata : IEventMetadata<TStreamId>
where TEventMetadata : class, IEventMetadata<TStreamId>
{
private readonly TContext context;
private readonly IEventFactory<TStreamId, TEvent> _eventFactory;
Expand Down Expand Up @@ -47,21 +47,8 @@ public async Task<IEnumerable<TEvent>> Events(Func<IQueryable<TEventMetadata>, I

public Task<IEnumerable<TEvent>> Events(TStreamId streamId) => Events(streamId, events => events);

public async Task<IEnumerable<TEvent>> Events(TStreamId streamId, Func<IQueryable<TEventMetadata>, IQueryable<TEventMetadata>> query)
{
var storedEvents = await context.Events
.Where(e => e.StreamId.Equals(streamId))
.AsNoTracking()
.Apply(query)
.OrderBy(e => e.Timestamp)
.ToListAsync();

var events = storedEvents
.Cast<TPersistedEvent>()
.Select(_serializer.Deserialize);

return events;
}
public Task<IEnumerable<TEvent>> Events(TStreamId streamId, Func<IQueryable<TEventMetadata>, IQueryable<TEventMetadata>> query)
=> Events(events => events.Where(e => e.StreamId.Equals(streamId)).Apply(query));

public Task Append(TStreamId streamId, long versionBefore, object payload)
=> Append(streamId, versionBefore, new[] { payload });
Expand Down

0 comments on commit 9119b23

Please sign in to comment.