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;
            }
        }
Exemple #2
0
        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;
            }
        }
Exemple #4
0
        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;
            }
        }