Beispiel #1
0
 private void Handle(AggregateEventBag <UserChanged> userChanged)
 {
     ReadModelStore.Change(new UserModel {
         Id       = userChanged.Id,
         EMail    = userChanged.EventData.EMail,
         Name     = userChanged.EventData.Name,
         Password = userChanged.EventData.Password
     });
 }
Beispiel #2
0
        public async Task InternalUpdateReadStoresAsync(
            IReadOnlyCollection <IDomainEvent> domainEvents,
            CancellationToken cancellationToken)
        {
            var relevantDomainEvents = domainEvents
                                       .Where(e => AggregateEventTypes.Contains(e.EventType))
                                       .ToList();

            if (!relevantDomainEvents.Any())
            {
                Log.Verbose(() => string.Format(
                                "None of these events was relevant for read model '{0}', skipping update: {1}",
                                StaticReadModelType.PrettyPrint(),
                                string.Join(", ", domainEvents.Select(e => e.EventType.PrettyPrint()))
                                ));
                return;
            }

            Log.Verbose(() => string.Format(
                            "Updating read model '{0}' in store '{1}' with these events: {2}",
                            typeof(TReadModel).PrettyPrint(),
                            typeof(TReadModelStore).PrettyPrint(),
                            string.Join(", ", relevantDomainEvents.Select(e => e.ToString()))));

            var contextFactory = new ReadModelContextFactory(Resolver);

            var readModelUpdates = BuildReadModelUpdates(relevantDomainEvents);

            if (!readModelUpdates.Any())
            {
                Log.Verbose(() => string.Format(
                                "No read model updates after building for read model '{0}' in store '{1}' with these events: {2}",
                                typeof(TReadModel).PrettyPrint(),
                                typeof(TReadModelStore).PrettyPrint(),
                                string.Join(", ", relevantDomainEvents.Select(e => e.ToString()))));
                return;
            }

            await ReadModelStore.UpdateAsync(
                readModelUpdates,
                contextFactory,
                UpdateAsync,
                cancellationToken)
            .ConfigureAwait(false);
        }
Beispiel #3
0
 private void Handle(AggregateEventBag <UserDeleted> userDeleted)
 {
     ReadModelStore.Remove(new UserModel {
         Id = userDeleted.Id
     });
 }
 private IEnumerable <UserModel> ExecuteQuery(GetAllUsers query)
 {
     return(ReadModelStore.Query <UserModel>().ToList());
 }
 private UserModel ExecuteQuery(GetUser query)
 {
     return(ReadModelStore.Query <UserModel>().SingleOrDefault(u => u.Id == query.Id));
 }