public static KrakenSocketEvent <KrakenStreamOrderBook>?Convert(JArray arr) { var result = new KrakenSocketEvent <KrakenStreamOrderBook> { ChannelId = (int)arr[0] }; var orderBook = new KrakenStreamOrderBook(); if (arr.Count == 4) { var innerObject = arr[1]; if (innerObject == null) { return(null); } if (innerObject["as"] != null) { // snapshot orderBook.Asks = innerObject["as"] !.ToObject <IEnumerable <KrakenStreamOrderBookEntry> >() !; orderBook.Bids = innerObject["bs"] !.ToObject <IEnumerable <KrakenStreamOrderBookEntry> >() !; } else if (innerObject["a"] != null) { // Only asks orderBook.Asks = innerObject["a"] !.ToObject <IEnumerable <KrakenStreamOrderBookEntry> >() !; } else { // Only bids orderBook.Bids = innerObject["b"] !.ToObject <IEnumerable <KrakenStreamOrderBookEntry> >() !; } if (innerObject["c"] != null) { orderBook.Checksum = innerObject["c"] !.Value <uint>(); } result.Topic = arr[2].ToString(); result.Symbol = arr[3].ToString(); } else { orderBook.Asks = arr[1]["a"] !.ToObject <IEnumerable <KrakenStreamOrderBookEntry> >() !; orderBook.Bids = arr[2]["b"] !.ToObject <IEnumerable <KrakenStreamOrderBookEntry> >() !; orderBook.Checksum = arr[2]["c"] !.Value <uint>(); result.Topic = arr[3].ToString(); result.Symbol = arr[4].ToString(); } result.Data = orderBook; return(result); }
public static KrakenSocketEvent <KrakenStreamOrderBook> Convert(JArray arr) { var result = new KrakenSocketEvent <KrakenStreamOrderBook>(); result.ChannelId = (int)arr[0]; var orderBook = new KrakenStreamOrderBook(); if (arr.Count == 4) { var innerObject = arr[1]; if (innerObject["as"] != null) { // snapshot orderBook.Asks = innerObject["as"].ToObject <KrakenStreamOrderBookEntry[]>(); orderBook.Bids = innerObject["bs"].ToObject <KrakenStreamOrderBookEntry[]>(); } else if (innerObject["a"] != null) { // Only asks orderBook.Asks = innerObject["a"].ToObject <KrakenStreamOrderBookEntry[]>(); } else { // Only bids orderBook.Bids = innerObject["b"].ToObject <KrakenStreamOrderBookEntry[]>(); } result.Topic = (string)arr[2]; result.Market = (string)arr[3]; } else { orderBook.Asks = arr[1]["a"].ToObject <KrakenStreamOrderBookEntry[]>(); orderBook.Bids = arr[2]["b"].ToObject <KrakenStreamOrderBookEntry[]>(); result.Topic = (string)arr[3]; result.Market = (string)arr[4]; } result.Data = orderBook; return(result); }