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); } } }
public Task RegisterAsync(InternalTrade internalTrade) { return(_internalTradeRepository.InsertAsync(internalTrade)); }