private async Task Handle(UserRegistered @event, Action acknowledgeEvent) { // Get current instance of query model var queryModel = await QueryById(@event.AggregateId) ?? QueryModel.CreateQueryModel <UserQueryModel>(@event.AggregateId); // Set Query Model properties queryModel.FirstName = @event.FirstName; queryModel.LastName = @event.LastName; queryModel.DisplayName = @event.FirstName + " " + @event.LastName; // Create or Update Query model in Read Store (E.g. CosmosDB) await QueryModelRepository.Save(queryModel); acknowledgeEvent(); }
public async Task <UserQueryModel[]> QueryAll() { return((await QueryModelRepository.GetAll <UserQueryModel>(x => true)).ToArray()); }
public async Task <UserQueryModel> QueryById(Guid id) { return(await QueryModelRepository.GetById <UserQueryModel>(id)); }
public void SetUp() { _persister = Substitute.For <ISnapshotPersister>(); sut = new QueryModelRepository(_factory, _eventStore, _persister); }