Exemplo n.º 1
0
        public void GetDeviceInfo(PushRouterInstModel model, int level, string routerToken = "", int groupId = 0, int pageSize = 10, int pageIndex = 1)
        {
            switch (level)
            {
            case 1:
                Dictionary <string, UDPServerHelper.RouteInfo> dic = UDPServerHelper.RouteList;
                model.RouterCount = dic.Count;
                if (dic.Count > 0)
                {
                    var routers = dic.Skip((pageIndex - 1) * pageSize).Take(pageSize * pageIndex);
                    foreach (var item in routers)
                    {
                        RouterInfo router = UDPServer.RouterList.FirstOrDefault(r => r.RouterToken == item.Key);
                        if (router != null)
                        {
                            router.RouterToken = item.Key;
                            router.Online      = item.Value.IsOnline ? "在线" : "离线";
                            IPEndPoint remotePoint = (IPEndPoint)item.Value.RemotePoint;
                            router.IP   = remotePoint.Address.ToString();
                            router.Port = remotePoint.Port;

                            model.RouterList.Add(router);
                        }
                    }
                }
                break;

            case 2:
                model.RouterDevices = GetDeviceList(UDPServer.CoinDeviceList.Where(t => t.RouterToken == routerToken).ToList());
                model.RouterGroups  = UDPServer.GroupList.Where(g => g.RouterToken == routerToken).ToList();
                break;

            case 3:
                model.RouterDevices = GetDeviceList(UDPServer.TerminalList.Where(t => t.GroupId == groupId).ToList());
                break;
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 推送指令
        /// </summary>
        public void PushRoutersAndInst(string clientId, int level = 1, string token = "", string routerName = "", int groupId = 0, string groupName = "", int pageIndex = 1, string commands = "")
        {
            //Connect connect = _connections.FirstOrDefault(c => c.ClientId == clientId);
            //if (connect == null)
            //{
            //    if (_connections.Count > 10)
            //    {
            //        _connections.RemoveAt(0);
            //    }
            //    connect = new Connect() { ClientId = clientId, ConnectionId = Context.ConnectionId };
            //    _connections.Add(connect);
            //}

            PushRouterInstModel model = new PushRouterInstModel();

            try
            {
                InstructionsModel inst = new InstructionsModel();

                inst.Total              = PubLib.当前总指令数;
                inst.Querys             = PubLib.当前查询指令数;
                inst.Coins              = PubLib.当前币业务指令数;
                inst.ICCardCoinRepeats  = PubLib.当前IC卡进出币指令重复数;
                inst.ICCardQueryRepeats = PubLib.当前IC卡查询重复指令数;
                inst.Receipts           = PubLib.当前小票指令数;
                inst.Errors             = PubLib.当前错误指令数;
                inst.Returns            = PubLib.当前返还指令数;
                model.Instructions      = inst;

                model.CurrVar = new CurrVar()
                {
                    Level = level, CurrRouterToken = token, CurrRouterName = routerName, CurrGroupId = groupId, CurrGroupName = groupName
                };

                GetDeviceInfo(model, level, token, groupId);

                List <string> msgList = UDPServer.当前消息列表;
                model.Messages = msgList.Select(t => new InstMessage {
                    MsgContent = t
                }).ToList();
                UDPServer.MessageStore("", false);

                string date = DateTime.Now.ToString("HH:mm:ss");
                model.SendLength = new DataLength()
                {
                    y = PubLib.SendDataLength, name = date
                };
                model.RecvLength = new DataLength()
                {
                    y = PubLib.RecvDataLength, name = date
                };

                if (SendLengthList.Count >= 50)
                {
                    SendLengthList.RemoveAt(0);
                    RecvLengthList.RemoveAt(0);
                }
                SendLengthList.Add(model.SendLength);
                RecvLengthList.Add(model.RecvLength);

                model.SendLengthList = SendLengthList;
                model.RecvLengthList = RecvLengthList;

                model.PerMinuteCount = UDPServer.PerMinuteCount;

                PubLib.SendDataLength = 0;
                PubLib.RecvDataLength = 0;

                //Clients.Client(connect.ConnectionId).PullInst(model);
                Clients.All.PullInst(model);
            }
            catch (Exception ex)
            {
                model.status = 0;
                model.msg    = ex.Message;
                Clients.All.PullInst(model);
            }
        }