LCOV - code coverage report
Current view: top level - Ninject/Cqrs.Ninject.InProcess.EventStore - InProcessEventStore.cs Hit Total Coverage
Test: doc-coverage.info Lines: 0 7 0.0 %
Date: 2017-07-26

          Line data    Source code
       1             : using System;
       2             : using System.Collections.Generic;
       3             : using System.Linq;
       4             : using Cqrs.Events;
       5             : 
       6             : namespace Cqrs.Ninject.InProcess.EventStore
       7             : {
       8             :         public class InProcessEventStore<TAuthenticationToken> : IEventStore<TAuthenticationToken>
       9           0 :         {
      10             :                 protected IDictionary<Guid, IList<IEvent<TAuthenticationToken>>> InMemoryDb { get; private set; }
      11             : 
      12           0 :                 public InProcessEventStore()
      13             :                 {
      14             :                         InMemoryDb = new Dictionary<Guid, IList<IEvent<TAuthenticationToken>>>();
      15             :                 }
      16             : 
      17           0 :                 public void Save(Type aggregateRootType, IEvent<TAuthenticationToken> @event)
      18             :                 {
      19             :                         IList<IEvent<TAuthenticationToken>> list;
      20             :                         InMemoryDb.TryGetValue(@event.Id, out list);
      21             :                         if (list == null)
      22             :                         {
      23             :                                 list = new List<IEvent<TAuthenticationToken>>();
      24             :                                 InMemoryDb.Add(@event.Id, list);
      25             :                         }
      26             :                         list.Add(@event);
      27             :                 }
      28             : 
      29           0 :                 public IEnumerable<IEvent<TAuthenticationToken>> Get<T>(Guid aggregateId, bool useLastEventOnly = false, int fromVersion = -1)
      30             :                 {
      31             :                         return Get(typeof(T), aggregateId, useLastEventOnly, fromVersion);
      32             :                 }
      33             : 
      34           0 :                 public IEnumerable<IEvent<TAuthenticationToken>> Get(Type aggregateType, Guid aggregateId, bool useLastEventOnly = false, int fromVersion = -1)
      35             :                 {
      36             :                         IList<IEvent<TAuthenticationToken>> events;
      37             :                         InMemoryDb.TryGetValue(aggregateId, out events);
      38             :                         return events != null
      39             :                                 ? events.Where(x => x.Version > fromVersion)
      40             :                                 : new List<IEvent<TAuthenticationToken>>();
      41             :                 }
      42             : 
      43           0 :                 public IEnumerable<EventData> Get(Guid correlationId)
      44             :                 {
      45             :                         return Enumerable.Empty<EventData>();
      46             :                 }
      47             : 
      48           0 :                 public void Save<T>(IEvent<TAuthenticationToken> @event)
      49             :                 {
      50             :                         Save(typeof(T), @event);
      51             :                 }
      52             :         }
      53             : }

Generated by: LCOV version 1.10