コード例 #1
0
        public async Task RegisterAsync(IReadOnlyCollection <InternalTrade> internalTrades)
        {
            foreach (IGrouping <string, InternalTrade> group in internalTrades.GroupBy(o => o.AssetPairId))
            {
                DateTime lastTradeTime = group.Max(o => o.Time);

                _internalLastInternalTradeTime.AddOrUpdate(group.Key, lastTradeTime,
                                                           (assetPairId, time) => lastTradeTime);
            }

            foreach (InternalTrade internalTrade in internalTrades)
            {
                await TraceWrapper.TraceExecutionTimeAsync("Inserting internal trade to the Azure storage",
                                                           () => _internalTradeRepository.InsertAsync(internalTrade), _log);

                try
                {
                    await TraceWrapper.TraceExecutionTimeAsync("Inserting internal trade to the Postgres storage",
                                                               () => _internalTradeRepositoryPostgres.InsertAsync(internalTrade), _log);
                }
                catch (Exception exception)
                {
                    _log.ErrorWithDetails(exception,
                                          "An error occurred while inserting internal trade to the Postgres DB", internalTrade);
                }
            }
        }
コード例 #2
0
 public Task RegisterAsync(InternalTrade internalTrade)
 {
     return(_internalTradeRepository.InsertAsync(internalTrade));
 }