internal void AssignPreviewImage(Guid previewImageFileId)
        {
            if (Guid.Empty == previewImageFileId)
            {
                throw new ArgumentException();
            }

            var previewImageAssigned = new ActivityPreviewImageAssigned(this.AggregateId, previewImageFileId);

            this.RaiseEvent(previewImageAssigned);
        }
        public async Task Handle(ActivityPreviewImageAssigned notification, CancellationToken cancellationToken)
        {
            using (var connection = this._dbConnectionFactory.OpenConnection())
            {
                var activityRepository = new ActivityRepository();
                var imageRepository    = new ImageRepository();
                var fileRepository     = new FileRepository();

                var file = await fileRepository.GetByIdAsync(connection, notification.FileId);

                var activityId = notification.AggregateId;

                await imageRepository.StoreImagesAsync(connection, file);

                await activityRepository.AssignPreviewImageAsync(connection, activityId, notification.FileId);
            }
        }
 private void Apply(ActivityPreviewImageAssigned obj)
 {
     this.PreviewImageFileId = obj.FileId;
 }