private async Task FillMarketDataAsync(Dictionary <string, TemporaryAggregatedData> tempDataByLimitOrderAndDtId)
        {
            var newMarketData = new Dictionary <string, IMarketData>();
            var assetPairs    = await _assetsService.AssetPairGetAllAsync();

            var tempDataValues = tempDataByLimitOrderAndDtId.Values.OrderBy(x => x.Dt);

            var marketProfile = await _marketProfileService.ApiMarketProfileGetAsync();

            var assetPairsHash = marketProfile.Select(i => i.AssetPair).ToHashSet();

            foreach (var record in tempDataValues)
            {
                if (record.Volume1 <= 0)
                {
                    continue;
                }

                try
                {
                    var assetPair = FindPairWithAssets(assetPairs, record.Asset1, record.Asset2);
                    if (assetPair == null || !assetPairsHash.Contains(assetPair.Id))
                    {
                        continue;
                    }

                    var isInverted = IsInvertedTarget(assetPair, record.Asset1);
                    var volume     = isInverted ? record.Volume1 : record.Volume2;

                    if (newMarketData.ContainsKey(assetPair.Id))
                    {
                        newMarketData[assetPair.Id].LastPrice = record.Price;
                        newMarketData[assetPair.Id].Volume   += volume;
                    }
                    else
                    {
                        newMarketData.Add(assetPair.Id, new MarketData
                        {
                            AssetPairId = assetPair.Id,
                            LastPrice   = record.Price,
                            Volume      = volume,
                            Dt          = DateTime.UtcNow
                        });
                    }
                }
                catch (Exception ex)
                {
                    _log.WriteError("FillMarketDataAsync", record.ToJson(), ex);
                }
            }

            await _marketDataRepository.AddOrMergeMarketData(newMarketData.Values);
        }