private async Task HandleRemarkStatisticsAsync(T @event)
        {
            var remarkStatistics = await _remarkStatisticsRepository.GetAsync(@event.RemarkId);

            var remark = await _serviceClient.GetAsync <RemarkDto>(@event.Resource);

            if (remarkStatistics.HasNoValue)
            {
                remarkStatistics = new RemarkStatistics(@event.RemarkId,
                                                        remark.Value.Category.Name, @event.UserId, remark.Value.Author.Name,
                                                        remark.Value.CreatedAt, remark.Value.State.State,
                                                        remark.Value.Location.Latitude, remark.Value.Location.Longitude,
                                                        remark.Value.Location.Address, remark.Value.Description, remark.Value.Tags);
            }
            else
            {
                Location location = null;
                if (remark.Value.State.Location != null)
                {
                    location = new Location(remark.Value.State.Location.Latitude,
                                            remark.Value.Location.Longitude, remark.Value.Location.Address);
                }
                remarkStatistics.Value.AddState(new RemarkState(remark.Value.State.State, @event.UserId, location: location));
            }
            await _remarkStatisticsRepository.AddOrUpdateAsync(remarkStatistics.Value);
        }