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; } }
/// <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); } }