internal static OrderExecutionOrderBookContract ToContract(this IOrderExecutionOrderBook orderBook) { return(new OrderExecutionOrderBookContract { OrderId = orderBook.OrderId, ExternalOrderId = orderBook.ExternalOrderId, OrderBook = orderBook.OrderBook.ToContract(), }); }
public static OrderExecutionOrderBookEntity Create(IOrderExecutionOrderBook orderBook) { return(new OrderExecutionOrderBookEntity { OrderId = orderBook.OrderId, ExternalOrderId = orderBook.ExternalOrderId, Spread = orderBook.Spread, ExchangeName = orderBook.OrderBook.ExchangeName, AssetPairId = orderBook.OrderBook.AssetPairId, Timestamp = orderBook.OrderBook.Timestamp, Asks = orderBook.OrderBook.Asks.ToJson(), Bids = orderBook.OrderBook.Bids.ToJson(), }); }
public async Task AddAsync(IOrderExecutionOrderBook orderBook) { using (var conn = new SqlConnection(_connectionString)) { try { var entity = OrderExecutionOrderBookEntity.Create(orderBook); var sql = $"insert into {TableName} ({GetColumns}) values ({GetFields})"; await conn.ExecuteAsync(sql, entity); } catch (Exception ex) { var msg = $"Error {ex.Message} \n" + $"Entity <{nameof(OrderExecutionOrderBookEntity)}>: \n" + orderBook.ToJson(); _log?.WriteWarning(nameof(ExecutionOrderBookRepository), nameof(AddAsync), msg); throw new Exception(msg, ex); } } }