public override object ToJson() { NodeModel node = new NodeModel() { id = Id, name = Name, count = OnlineUserCount, rootid = RoomGroupVM.RootRoomGroupVM.Id,maxcount = MaxUserCount }; if (ImageVM != null) node.icon = ImageVM.StaticImageFile; return node; }
private void OnlineUserCountChangedEventHandler(List<RoomViewModel> changedRooms) { List<TreeNodeModel> roomGroupsUserCount = new List<TreeNodeModel>(); ApplicationVM.LocalCache.AllRoomGroupVMs.ForEach(g => { var c = g.GetOnlineUserCount(); if (g.OnlineUserCount != c) { g.OnlineUserCount = c; var node = new TreeNodeModel { id = g.Id, count = c, rootid = g.RootRoomGroupVM.Id, name = g.Name }; roomGroupsUserCount.Add(node); } }); List<NodeModel> roomsUserCount = new List<NodeModel>(); changedRooms.ForEach(r => { var node = new NodeModel { id = r.Id, count = r.OnlineUserCount, rootid = r.RootRoomGroupVM.Id, name = r.Name }; roomsUserCount.Add(node); }); JavaScriptSerializer js = new JavaScriptSerializer(); CallJavaScript("UpdateOnlineUserCountAsync", js.Serialize(roomGroupsUserCount), js.Serialize(roomsUserCount)); }