示例#1
0
        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);
                    }
                }
            }
        }
示例#2
0
        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}");
            }
        }
示例#3
0
文件: ETopic.cs 项目: AYCHEX/aex.cSDK
        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}");
            }
        }
示例#4
0
        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 }));
            }
        }
示例#6
0
        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));
        }