private void EnsureSub(MarketEventType e) { if (!_subscribers.ContainsKey(e)) { _subscribers[e] = new HashSet <IActorRef>(); } }
public static string ToTopic(string tickerSymbol, MarketEventType marketEventType) { string ToStr(MarketEventType e) { switch (e) { case MarketEventType.PriceChange: return("price"); case MarketEventType.VolumeChange: return("volume"); default: throw new ArgumentOutOfRangeException(nameof(e)); } } return($"{tickerSymbol}-{ToStr(marketEventType)}"); }
public MarketEventModel[] GetMarketEvents(MarketEventType eventType) { return(_marketEvents.Where(m => m.Metadata.EventType == eventType) .ToArray()); }
public async Task <MarketUnsubscribeAck> Unsubscribe(string tickerSymbol, MarketEventType @event, IActorRef subscriber) { return(await Unsubscribe(tickerSymbol, new[] { @event }, subscriber)); }