Beispiel #1
0
        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);
 }