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."); }
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();
/// <inheritdoc /> public async Task Consume(ConsumeContext <RemarkDeleted> context) { await _remarkRepository.DeleteAsync(new RemarkDto { Id = context.Message.RemarkId }); }