Ejemplo n.º 1
0
        public async Task HandleAsync(RemarkResolved @event)
        {
            await _handler
            .Run(async() =>
            {
                var remark = await _remarkRepository.GetByIdAsync(@event.RemarkId);
                if (remark.HasNoValue)
                {
                    return;
                }

                var remarkDto          = await _remarkServiceClient.GetAsync <Remark>(@event.RemarkId);
                remark.Value.UpdatedAt = remarkDto.Value.UpdatedAt;
                remark.Value.State     = remarkDto.Value.State;
                remark.Value.States    = remarkDto.Value.States;
                remark.Value.Photos    = remarkDto.Value.Photos;
                remark.Value.Resolved  = true;
                await _remarkRepository.UpdateAsync(remark.Value);
                await _groupRemarkRepository.DeleteAllForRemarkAsync(@event.RemarkId);
                await _cache.AddAsync(remark.Value);
            })
            .OnError((ex, logger) =>
            {
                logger.Error(ex, $"Error occured while handling {@event.GetType().Name} event");
            })
            .ExecuteAsync();
        }
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();