public override async Task <ReadModelEnvelope <TReadModel> > GetAsync(string id, CancellationToken cancellationToken) { var readModelType = typeof(TReadModel); var readModelNameLowerCased = readModelType.Name.ToLowerInvariant(); var selectSql = _readModelSqlGenerator.CreateSelectSql <TReadModel>(); var readModels = await _connection.QueryAsync <TReadModel>( Label.Named(string.Format("mssql-fetch-read-model-{0}", readModelNameLowerCased)), cancellationToken, selectSql, new { EventFlowReadModelId = id }) .ConfigureAwait(false); var readModel = readModels.SingleOrDefault(); if (readModel == null) { Log.Verbose(() => $"Could not find any MSSQL read model '{readModelType.PrettyPrint()}' with ID '{id}'"); return(ReadModelEnvelope <TReadModel> .Empty(id)); } var readModelVersion = GetVersion(readModel); Log.Verbose(() => $"Foud MSSQL read model '{readModelType.PrettyPrint()}' with ID '{readModelVersion}'"); return(readModelVersion.HasValue ? ReadModelEnvelope <TReadModel> .With(id, readModel, readModelVersion.Value) : ReadModelEnvelope <TReadModel> .With(id, readModel)); }
public override async Task <ReadModelEnvelope <TReadModel> > GetAsync(string id, CancellationToken cancellationToken) { var readModelNameLowerCased = typeof(TReadModel).Name.ToLowerInvariant(); var selectSql = _readModelSqlGenerator.CreateSelectSql <TReadModel>(); var readModels = await _connection.QueryAsync <TReadModel>( Label.Named(string.Format("mssql-fetch-read-model-{0}", readModelNameLowerCased)), cancellationToken, selectSql, new { AggregateId = id }) .ConfigureAwait(false); var readModel = readModels.SingleOrDefault(); return(readModel == null ? ReadModelEnvelope <TReadModel> .Empty : ReadModelEnvelope <TReadModel> .With(readModel, readModel.LastAggregateSequenceNumber)); }