protected bool processTicker(BaseTicker ticker) { // true - тікер обробили, його потрібно вивести // false - тікер не змінився bool processed = false; if (ticker.Symbol != string.Empty && ticker.BidPrice != 0 && ticker.AskPrice != 0 && ticker.TotalTradedVolume != 0) { if (totalTicker.dictionaryTicker.ContainsKey(ticker.Symbol)) { BaseTicker updatedTicker; processed = calculateTicker(ticker, out updatedTicker); if (processed) { totalTicker.dictionaryTicker[ticker.Symbol] = updatedTicker; } } else { totalTicker.dictionaryTicker[ticker.Symbol] = ticker; processed = true; //totalTicker.dictionaryTicker.TryAdd(ticker.Symbol, ticker); } } return(processed); }
public override bool Equals(Object obj) { if (obj == null || GetType() != obj.GetType()) { return(false); } BaseTicker ticker = (BaseTicker)obj; return((AskPrice == ticker.AskPrice) && (BidPrice == ticker.BidPrice) && (TotalTradedVolume == ticker.TotalTradedVolume)); }
protected bool calculateTicker(BaseTicker newTicker, out BaseTicker resultTicker) { // true - прийшов новий тікер // false - тікер рівний тікеру в dictionaryTicker bool changed = false; BaseTicker lastTicker = totalTicker.dictionaryTicker[newTicker.Symbol]; if (lastTicker.AskPrice != newTicker.AskPrice || lastTicker.BidPrice != newTicker.BidPrice || lastTicker.TotalTradedVolume != newTicker.TotalTradedVolume) { resultTicker = newTicker; changed = true; } else { resultTicker = new BaseTicker(); } return(changed); }