public void Save(IEventSource aggregate) { if (_cache != null) { _cache.Save(aggregate); } else { _repository.Save(aggregate); } }
public TAggregate GetById <TAggregate>(Guid id, int version, ICorrelatedMessage source) where TAggregate : AggregateRoot, IEventSource { TAggregate agg = _cache?.GetById <TAggregate>(id, version); if (agg == null || agg.Version > version) { agg = _repository.GetById <TAggregate>(id, version); if (agg != null) { _cache?.Save(agg); } } if (agg != null) { ((ICorrelatedEventSource)agg).Source = source; } return(agg); }
public void Save(IEventSource aggregate) { _cache.Save(aggregate); }