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(),
     });
 }
Пример #3
0
        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);
                }
            }
        }