public void Unsubscribe(ETopic topic) { IPubSubClient client = OperationContext.Current.GetCallbackChannel <IPubSubClient>(); List <ETopic> topics; lock (clients) { if (clients.TryGetValue(client, out topics)) { topics.Remove(topic); if (topics.Count == 0) { clients.Remove(client); } } } }
private string ToUrl(ETopic topic) { switch (topic) { case ETopic.Orders: return(Streams.Orders(Address)); case ETopic.Accounts: return(Streams.Accounts(Address)); case ETopic.Transfers: return(Streams.Transfers(Address)); case ETopic.Trades: return(Streams.Trades(Symbol)); case ETopic.MarketDiff: return(Streams.MarketDiff(Symbol)); case ETopic.MarketDepth: return(Streams.MarketDepth(Symbol)); case ETopic.KLine: return(Streams.KLine(Symbol, stream.KLineInterval.ToKLineInterval(KLineInterval))); case ETopic.Ticker: return(Streams.Ticker(Symbol)); case ETopic.AllTickers: return(Streams.AllTickers()); case ETopic.MiniTicker: return(Streams.MiniTicker(Symbol)); case ETopic.AllMiniTickers: return(Streams.AllMiniTickers()); case ETopic.Blockheight: return(Streams.Blockheight()); default: throw new WebSocketException($"Unhandled Topic: {Topic}"); } }
public static string ToTopic(ETopic topic) { switch (topic) { case ETopic.Orders: return(Orders); case ETopic.Accounts: return(Accounts); case ETopic.Transfers: return(Transfers); case ETopic.Trades: return(Trades); case ETopic.MarketDiff: return(MarketDiff); case ETopic.MarketDepth: return(MarketDepth); case ETopic.KLine: return(KLine); case ETopic.Ticker: return(Ticker); case ETopic.AllTickers: return(AllTickers); case ETopic.MiniTicker: return(MiniTicker); case ETopic.AllMiniTickers: return(AllMiniTickers); case ETopic.Blockheight: return(Blockheight); default: throw new WebSocketException($"Unhandled topic: {topic}"); } }
public void Subscribe(ETopic topic) { IPubSubClient client = OperationContext.Current.GetCallbackChannel <IPubSubClient>(); List <ETopic> topics; lock (clients) { if (clients.TryGetValue(client, out topics)) { if (!topics.Contains(topic)) { topics.Add(topic); } } else { clients.Add(client, new List <ETopic>() { topic }); } } }
public async Task <JsonResult> GetTopicLogListAsync(int page, int rows, int eTopic, string topicID) { using (TopicLogRepository repo = new TopicLogRepository()) { ETopic topic = (ETopic)eTopic; var tuple = await repo.GetListAsync(page, rows, topic, topicID); List <object> objList = new List <object>(); foreach (var log in tuple.Item1) { objList.Add(new { Tid = log.Tid, log.Topic, log.TopicID, ModuleID = log.ModuleID, addDate = log.addDate.ToString("yyyy-MM-dd"), log.Contents }); } return(Json(new { total = tuple.Item2, rows = objList })); } }
public async Task <Tuple <List <TopicLog>, int> > GetListAsync(int page, int rows, ETopic eTopic, string topicID) { int pageIndex = (page - 1) * rows; int topic = (int)eTopic; int total = await context.TopicLogs.Where(p => p.Topic == topic && p.TopicID == topicID).CountAsync(); var list = await(from j in context.TopicLogs where j.Topic == topic && j.TopicID == topicID orderby j.addDate descending select j).Skip(pageIndex).Take(rows).ToListAsync(); return(Tuple.Create(list, total)); }