using System; using System.Collections.Generic; using System.Text; namespace Shared.Phone { /// /// 消息中心控件 /// public class MessageManagementControl : ButtonBase { /// /// 消息中心控件 /// public MessageManagementControl() { this.Height = this.GetPictrueRealSize(69); this.Width = this.GetPictrueRealSize(69); this.UnSelectedImagePath = "Item/MessageManagement.png"; this.SelectedImagePath = "Item/MessageManagementSelected.png"; //如果住宅为虚拟住宅,则此功能无效 if (Common.Config.Instance.Home.IsVirtually == false) { this.ButtonClickEvent += (sender, e) => { //点击后,清空状态 this.IsSelected = false; HdlControlResourse.HadNewMessage = false; var form = new UserCenter.UserMain.MessageManagementForm(); form.AddForm(); }; //添加缓存 HdlControlResourse.listMessageManaContr.Add(this); //刷新状态 this.RefreshStatu(); } } /// /// 刷新状态(也就是如果数据有更新的话,会显示红色角标) /// public void RefreshStatu() { //如果住宅为虚拟住宅,则此功能无效 if (Common.Config.Instance.Home.IsVirtually == true) { return; } if (HdlControlResourse.HadNewMessage == true) { //如果已经有新消息过来了,就不用读了 HdlControlResourse.ReadMessageAgain = false; this.IsSelected = true; return; } if (HdlControlResourse.ReadMessageAgain == false) { //无需再次读取 return; } HdlControlResourse.ReadMessageAgain = false; HdlThreadLogic.Current.RunThread(() => { //获取消息列表 string nowHomeId = Common.Config.Instance.Home.Id; var listMsg = HdlMessageLogic.Current.GetListMessageFromDb(); if (listMsg == null) { //出错,需要重新读取 HdlControlResourse.ReadMessageAgain = true; return; } if (nowHomeId != Common.Config.Instance.Home.Id) { //检测:切换了住宅?? return; } for (int i = 0; i < listMsg.Count; i++) { if (listMsg[i].IsRead == false) { if (listMsg[i].MessageTitle == "/DoorLock/DoorLockOperatingEventNotificationCommand") { //暂时不处理这个主题 continue; } HdlControlResourse.HadNewMessage = true; HdlThreadLogic.Current.RunMain(() => { //有新消息 this.IsSelected = true; }, ShowErrorMode.NO); break; } } }); } /// /// 控件移除 /// public override void RemoveFromParent() { HdlControlResourse.listMessageManaContr.Remove(this); base.RemoveFromParent(); } } }