public async Task Project(object @event) { Log.Debug($"Upcasting {{event}} to {StreamName}", @event); switch (@event) { case Events.ClassifiedAdPublished e: var photoUrl = await _getUserPhoto(e.OwnerId); var newEvent = new ClassifiedAdUpcastedEvents.V1.ClassifiedAdPublished { Id = e.Id, OwnerId = e.OwnerId, ApprovedBy = e.ApprovedBy, SellersPhotoUrl = photoUrl }; await _eventStoreConnection.AppendEvents( StreamName, ExpectedVersion.Any, newEvent ); break; } }
public async Task Save <T, TId>(T aggregate) where T : AggregateRoot <TId> { if (aggregate == null) { throw new ArgumentNullException(nameof(aggregate)); } var streamName = GetStreamName <T, TId>(aggregate); var changes = aggregate.GetChanges().ToArray(); await _connection.AppendEvents(streamName, aggregate.Version, changes); aggregate.ClearChanges(); }
public async Task Project(object @event) { switch (@event) { case ClassifiedAdPublished e: var photoUrl = _getUserPhoto(e.OwnerId); var newEvent = new PhotoUrlUpdatedIntegrationEvent { Id = e.Id, OwnerId = e.OwnerId, SellerPhotoUrl = photoUrl, ApprovedBy = e.ApprovedBy }; await _connection.AppendEvents(StreamName, ExpectedVersion.Any, newEvent); break; } }
public async Task Project(object @event) { switch (@event) { case ResourceRegistered e: var newEvent = new V1.ResourceRegistered { ResourceId = e.ResourceId, ResourceNo = e.ResourceNo, ResourceName = e.ResourceName, ResourcePrice = e.ResourcePrice }; await _eventStoreConnection.AppendEvents( StreamName, ExpectedVersion.Any, newEvent); break; } }
public async Task Project(object @event) { switch (@event) { case ClassifiedAdPublished e: var photoUrl = _getUserPhoto(e.OwnerId); var newEvent = new V1.ClassifiedAdPublished { Id = e.Id, OwnerId = e.OwnerId, ApprovedBy = e.ApprovedBy, SellersPhotoUrl = photoUrl }; await _eventStoreConnection.AppendEvents( StreamName, ExpectedVersion.Any, newEvent); break; } }