public async Task DeleteAsync(Guid remarkId)
        {
            Logger.Debug($"Deleting remark with id: '{remarkId}'.");
            var remark = await _remarkRepository.GetOrFailAsync(remarkId);

            if (remark.Photos.Any())
            {
                var photoNames = remark.Photos.Select(x => x.Name).ToArray();
                await _remarkPhotoService.RemovePhotosAsync(remark.Id, photoNames);
            }
            await _remarkRepository.DeleteAsync(remark);

            Logger.Debug($"Remark with id: '{remarkId}' was deleted.");
        }
Ejemplo n.º 2
0
        public async Task HandleAsync(RemarkDeleted @event)
        => await _handler
        .Run(async() =>
        {
            var remark = await _repository.GetByIdAsync(@event.RemarkId);
            if (remark.HasNoValue)
            {
                return;
            }

            await _repository.DeleteAsync(remark.Value);
            await _groupRemarkRepository.DeleteAllForRemarkAsync(@event.RemarkId);
            await _remarkCache.DeleteAsync(@event.RemarkId, deleteGeo: true, deleteLatest: true);
            await _userCache.DeleteRemarkAsync(remark.Value.Author.UserId, @event.RemarkId);
        })
        .OnError((ex, logger) =>
        {
            logger.Error(ex, $"Error occured while handling {@event.GetType().Name} event");
        })
        .ExecuteAsync();
Ejemplo n.º 3
0
 /// <inheritdoc />
 public async Task Consume(ConsumeContext <RemarkDeleted> context)
 {
     await _remarkRepository.DeleteAsync(new RemarkDto { Id = context.Message.RemarkId });
 }