private Task ProcessBestBidAsk(BestBidAsk bestBidAsk) { // If Price is zero/null publish exception to support slack channel // and discard entry if (bestBidAsk.BestAsk == null || bestBidAsk.BestAsk <= 0 || bestBidAsk.BestBid == null || bestBidAsk.BestBid <= 0) { //log //LogWarning("ProcessBestBidAsk", string.Format("Received BestBidAsk with price zero [0], BestBidAsk discarded. {0}", bestBidAsk)); // Discard it return(Task.FromResult(0)); } InstrumentPrice assetbid = new InstrumentPrice() { Instrument = bestBidAsk.Asset, Source = bestBidAsk.Source, Ask = bestBidAsk.BestAsk.Value, Bid = bestBidAsk.BestBid.Value, Date = bestBidAsk.Timestamp, ReceiveDate = DateTime.UtcNow }; OnMessageReceived(assetbid); return(Task.FromResult(0)); }
private Task PrimaryMessageReceived_BestBidAsk(BestBidAsk bestBidAsk) { //Message received, update timestamp. _primaryStreamLastMessageTimeStamp = DateTime.UtcNow; //Console.WriteLine(bestBidAsk); // Filter Asset from Primary Stream Configuration File if (!_primaryGameInstruments.Contains(bestBidAsk.Asset)) { // Not in allowed assets list, discard entry return(Task.FromResult(0)); } else { return(ProcessBestBidAsk(bestBidAsk)); } }