| | |
| | | framBack.AddChidren(frameDate);
|
| | | var btnDate = new NormalViewControl(500, 60, true);
|
| | | btnDate.TextSize = 15;
|
| | | btnDate.X = ControlCommonResourse.XXLeft;
|
| | | btnDate.X = HdlControlResourse.XXLeft;
|
| | | btnDate.Y = Application.GetRealHeight(35);
|
| | | btnDate.Text = Convert.ToDateTime(listGroup[0][0].CreatedOnUtc).ToString("MM" + strMonth + "dd" + strDate);
|
| | | btnDate.Text = HdlCommonLogic.Current.ConvertUtcTimeToLocalTime2(listGroup[0][0].CreateTime).ToString("MM" + strMonth + "dd" + strDate);
|
| | | frameDate.AddChidren(btnDate);
|
| | | }
|
| | |
|
| | |
| | | for (int j = 0; j < listData[i].listMsg.Count; j++)
|
| | | {
|
| | | //设置已读的初始值
|
| | | listData[i].ListReading.Add(listData[i].IsReading);
|
| | | listData[i].ListReading.Add(listData[i].IsRead);
|
| | | //添加信息行
|
| | | bool addLine = i != listData.Count - 1 || j != listData[i].listMsg.Count - 1;
|
| | | this.AddMsgRowControl(framBack, listData[i], j, addLine);
|
| | |
| | | /// </summary>
|
| | | private void ShowBottomMenu()
|
| | | {
|
| | | bool authority = UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2;
|
| | | bool authority = HdlUserCenterResourse.ResidenceOption.AuthorityNo == 1 || HdlUserCenterResourse.ResidenceOption.AuthorityNo == 2;
|
| | |
|
| | | var menuContr = new BottomMenuSelectForm();
|
| | | menuContr.AddForm(authority == true ? 2 : 1);
|
| | |
| | | var btnTime = rowControl.frameTable.AddMostRightView("", 200, 50);
|
| | | btnTime.TextColor = UserCenterColor.Current.TextGrayColor1;
|
| | | btnTime.Y = btnMsg.Bottom + Application.GetRealHeight(12);
|
| | | var convertTime = UserCenterLogic.ConvertUtcTimeToLocalTime(recordInfo.CreatedOnUtc);
|
| | | var convertTime = HdlCommonLogic.Current.ConvertUtcTimeToLocalTime2(recordInfo.CreateTime);
|
| | | btnTime.Text = convertTime.ToString("HH:mm");
|
| | | rowControl.frameTable.AddChidren(btnTime, ChidrenBindMode.BindEvent);
|
| | | //底线
|
| | |
| | | }
|
| | |
|
| | | //主要主人和管理员能够删除
|
| | | if (UserCenterResourse.UserInfo.AuthorityNo == 1 || UserCenterResourse.UserInfo.AuthorityNo == 2)
|
| | | if (HdlUserCenterResourse.ResidenceOption.AuthorityNo == 1 || HdlUserCenterResourse.ResidenceOption.AuthorityNo == 2)
|
| | | {
|
| | | //删除
|
| | | var btnDelete = rowControl.AddDeleteControl();
|
| | |
| | | }
|
| | |
|
| | | //点击
|
| | | rowControl.frameTable.ButtonClickEvent += async (sender, e) =>
|
| | | rowControl.frameTable.ButtonClickEvent += (sender, e) =>
|
| | | {
|
| | | if (recordInfo.ListReading[msgIndex] == true)
|
| | | {
|
| | |
| | | /// <param name="strId"></param>
|
| | | private bool SetTickIsRead(string strId)
|
| | | {
|
| | | var pra = new MessageReadStatuPra();
|
| | | pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
| | | pra.Id = strId;
|
| | | var result = UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/TagMessageMessageCenterItem", true, pra);
|
| | | return result;
|
| | | return HdlMessageLogic.Current.SetTickIsRead(strId);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | //打开进度条
|
| | | this.ShowProgressBar();
|
| | |
|
| | | var pra = new MessageReadStatuPra();
|
| | | pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
| | | pra.TagAllOrClearType = 0;
|
| | | var result = UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/TagAllOrClearMessageCenter", true, pra);
|
| | | var result = HdlMessageLogic.Current.SetAllTickIsRead();
|
| | |
|
| | | //关闭进度条
|
| | | this.CloseProgressBar();
|
| | | if (result == false)
|
| | |
| | | /// <param name="rowContr"></param>
|
| | | private bool DeleteMsg(string strId, FrameListControl frameList, RowLayoutControl rowContr)
|
| | | {
|
| | | var pra = new MessageReadStatuPra();
|
| | | pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
| | | pra.Id = strId;
|
| | | var result = UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/DelMessageCenterItem", true, pra);
|
| | | var result = HdlMessageLogic.Current.DeleteCloundMessage(strId);
|
| | | if (result == false)
|
| | | {
|
| | | return false;
|
| | |
| | | //打开进度条
|
| | | this.ShowProgressBar();
|
| | |
|
| | | var pra = new MessageReadStatuPra();
|
| | | pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
| | | pra.TagAllOrClearType = 1;
|
| | | var result = UserCenterLogic.GetResultStatuByRequestHttps("MessageCenter/TagAllOrClearMessageCenter", true, pra);
|
| | | var result = HdlMessageLogic.Current.DeleteAllCloundMessage();
|
| | | if (result == false)
|
| | | {
|
| | | //关闭进度条
|
| | |
| | | private Dictionary<string, List<List<MessageRecordInfo>>> GetMessageData()
|
| | | {
|
| | | this.dicAllRow = new Dictionary<string, RowLayoutControl>();
|
| | | var allListData = new List<MessageRecordInfo>();
|
| | |
|
| | | var pra = new MessageInfoPra();
|
| | | pra.LoginAccessToken = UserCenterLogic.GetConnectMainToken();
|
| | |
|
| | | //传感器上报
|
| | | pra.Topic = "/IASInfoReport";
|
| | | var dataInfo = this.GetMessageDataFromDb(pra);
|
| | | if (dataInfo == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | allListData.AddRange(dataInfo);
|
| | |
|
| | | //门锁上报
|
| | | pra.Topic = "/Alarms/SendAlarmInform";
|
| | | dataInfo = this.GetMessageDataFromDb(pra);
|
| | | if (dataInfo == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | allListData.AddRange(dataInfo);
|
| | |
|
| | | //撤防
|
| | | pra.Topic = "/Security/WithdrawMode_Respon";
|
| | | dataInfo = this.GetMessageDataFromDb(pra);
|
| | | if (dataInfo == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | allListData.AddRange(dataInfo);
|
| | |
|
| | | //布防
|
| | | pra.Topic = "/Security/EnableMode_Respon";
|
| | | dataInfo = this.GetMessageDataFromDb(pra);
|
| | | if (dataInfo == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | allListData.AddRange(dataInfo);
|
| | |
|
| | | //逻辑触发上报
|
| | | pra.Topic = "/Logic/Execute_Respon";
|
| | | dataInfo = this.GetMessageDataFromDb(pra);
|
| | | if (dataInfo == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | allListData.AddRange(dataInfo);
|
| | |
|
| | | //场景触发上报
|
| | | pra.Topic = "/Scene/Exec_Respon";
|
| | | dataInfo = this.GetMessageDataFromDb(pra);
|
| | | if (dataInfo == null)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | allListData.AddRange(dataInfo);
|
| | |
|
| | | //合并数据
|
| | | return this.MergeMessageRecordData(allListData);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | | /// 从云端获取数据
|
| | | /// </summary>
|
| | | /// <param name="pra"></param>
|
| | | /// <returns></returns>
|
| | | private List<MessageRecordInfo> GetMessageDataFromDb(MessageInfoPra pra)
|
| | | {
|
| | | var result = UserCenterLogic.GetResponseDataByRequestHttps("MessageCenter/GetMessageCenterPagger", true, pra);
|
| | | if (string.IsNullOrEmpty(result) == true)
|
| | | {
|
| | | return null;
|
| | | }
|
| | | var dataInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<MessageCentetInfo>(result);
|
| | |
|
| | | var listData = new List<MessageRecordInfo>();
|
| | | for (int i = 0; i < dataInfo.PageData.Count; i++)
|
| | | var listMsg = HdlMessageLogic.Current.GetListMessageFromDb();
|
| | | if (listMsg == null)
|
| | | {
|
| | | return new Dictionary<string, List<List<MessageRecordInfo>>>();
|
| | | }
|
| | |
|
| | | for (int i = 0; i < listMsg.Count; i++)
|
| | | {
|
| | | try
|
| | | {
|
| | | var data = dataInfo.PageData[i];
|
| | | var data = listMsg[i];
|
| | | //处理消息类型
|
| | | this.AdjustMsgContent(ref data);
|
| | |
|
| | | listData.Add(data);
|
| | | if (this.AdjustMsgContent(ref data) == true)
|
| | | {
|
| | | listData.Add(data);
|
| | | }
|
| | | }
|
| | | catch { continue; }
|
| | | }
|
| | |
|
| | | return listData;
|
| | | //合并数据
|
| | | return this.MergeMessageRecordData(listData);
|
| | | }
|
| | |
|
| | | /// <summary>
|
| | |
| | | var listSortKeys = new List<string>();
|
| | | foreach (var data in dataInfo)
|
| | | {
|
| | | if (dicTemp.ContainsKey(data.CreatedOnUtc) == false)
|
| | | if (dicTemp.ContainsKey(data.CreateTime) == false)
|
| | | {
|
| | | dicTemp[data.CreatedOnUtc] = new List<MessageRecordInfo>();
|
| | | listSortKeys.Add(data.CreatedOnUtc);
|
| | | dicTemp[data.CreateTime] = new List<MessageRecordInfo>();
|
| | | listSortKeys.Add(data.CreateTime);
|
| | | }
|
| | | dicTemp[data.CreatedOnUtc].Add(data);
|
| | | dicTemp[data.CreateTime].Add(data);
|
| | | }
|
| | | listSortKeys.Sort();
|
| | |
|
| | |
| | | var listData = dicTemp[listSortKeys[i]];
|
| | | foreach (var data2 in listData)
|
| | | {
|
| | | if (data2.Topic == "/DoorLock/DoorLockOperatingEventNotificationCommand")
|
| | | try
|
| | | {
|
| | | //暂时不处理这个主题
|
| | | continue;
|
| | | if (data2.MessageTitle == "/DoorLock/DoorLockOperatingEventNotificationCommand")
|
| | | {
|
| | | //暂时不处理这个主题
|
| | | continue;
|
| | | }
|
| | | string strDay = HdlCommonLogic.Current.ConvertUtcTimeToLocalTime2(data2.CreateTime).ToString("yyyy/MM/dd");
|
| | | //按每天分组
|
| | | if (dicData.ContainsKey(strDay) == false)
|
| | | {
|
| | | listGroup = new List<MessageRecordInfo>();
|
| | | dicData[strDay] = new List<List<MessageRecordInfo>>();
|
| | | dicData[strDay].Add(listGroup);
|
| | | }
|
| | | if (listGroup.Count > 20)
|
| | | {
|
| | | //每20个一组
|
| | | listGroup = new List<MessageRecordInfo>();
|
| | | dicData[strDay].Add(listGroup);
|
| | | }
|
| | | listGroup.Add(data2);
|
| | | }
|
| | | string[] myArry = data2.CreatedOnUtc.Split(new string[] { "T" }, StringSplitOptions.RemoveEmptyEntries);
|
| | | if (myArry.Length != 2)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | string dicKeys = myArry[0];//日期
|
| | | if (dicData.ContainsKey(dicKeys) == false)
|
| | | {
|
| | | listGroup = new List<MessageRecordInfo>();
|
| | | dicData[dicKeys] = new List<List<MessageRecordInfo>>();
|
| | | dicData[dicKeys].Add(listGroup);
|
| | | }
|
| | | if (listGroup.Count > 20)
|
| | | {
|
| | | //每20个一组
|
| | | listGroup = new List<MessageRecordInfo>();
|
| | | dicData[dicKeys].Add(listGroup);
|
| | | }
|
| | | listGroup.Add(data2);
|
| | | catch { }
|
| | | }
|
| | | }
|
| | | return dicData;
|
| | |
| | | /// 处理消息类型
|
| | | /// </summary>
|
| | | /// <param name="recordInfo">消息数据</param>
|
| | | private void AdjustMsgContent(ref MessageRecordInfo recordInfo)
|
| | | private bool AdjustMsgContent(ref MessageRecordInfo recordInfo)
|
| | | {
|
| | | var jobject = JObject.Parse(recordInfo.PayloadJson);
|
| | | //传感器上报
|
| | | if (recordInfo.Topic == "/IASInfoReport")
|
| | | if (recordInfo.MessageTitle == "/IASInfoReport")
|
| | | {
|
| | | var jobject = JObject.Parse(recordInfo.MessageExpand);
|
| | | this.SensorDeviceReportPush(jobject, ref recordInfo);
|
| | | }
|
| | | //门锁上报
|
| | | else if (recordInfo.Topic == "/Alarms/SendAlarmInform")
|
| | | else if (recordInfo.MessageTitle == "/Alarms/SendAlarmInform")
|
| | | {
|
| | | var jobject = JObject.Parse(recordInfo.MessageExpand);
|
| | | this.DoorLockDeviceReportPush(jobject, ref recordInfo);
|
| | | }
|
| | | //撤防
|
| | | else if (recordInfo.Topic == "/Security/WithdrawMode_Respon")
|
| | | else if (recordInfo.MessageTitle == "/Security/WithdrawMode_Respon")
|
| | | {
|
| | | var jobject = JObject.Parse(recordInfo.MessageExpand);
|
| | | this.RemoveSafetyGarrisonPush(jobject, ref recordInfo);
|
| | | }
|
| | | //布防
|
| | | else if (recordInfo.Topic == "/Security/EnableMode_Respon")
|
| | | else if (recordInfo.MessageTitle == "/Security/EnableMode_Respon")
|
| | | {
|
| | | var jobject = JObject.Parse(recordInfo.MessageExpand);
|
| | | this.SetSafetyGarrisonPush(jobject, ref recordInfo);
|
| | | }
|
| | | //逻辑触发上报
|
| | | else if (recordInfo.Topic == "/Logic/Execute_Respon")
|
| | | else if (recordInfo.MessageTitle == "/Logic/Execute_Respon")
|
| | | {
|
| | | var jobject = JObject.Parse(recordInfo.MessageExpand);
|
| | | this.LogicExecutePush(jobject, ref recordInfo);
|
| | | }
|
| | | //场景触发上报
|
| | | else if (recordInfo.Topic == "/Scene/Exec_Respon")
|
| | | else if (recordInfo.MessageTitle == "/Scene/Exec_Respon")
|
| | | {
|
| | | var jobject = JObject.Parse(recordInfo.MessageExpand);
|
| | | this.SceneExecPush(jobject, ref recordInfo);
|
| | | }
|
| | | else
|
| | | {
|
| | | //不处理的主题
|
| | | return false;
|
| | | }
|
| | | return true;
|
| | | }
|
| | |
|
| | | #endregion
|
| | |
| | | var ias = new IASZone() { DeviceAddr = receiveData.Value<string>("DeviceAddr"), DeviceEpoint = receiveData.Value<int>("Epoint") };
|
| | | ias.iASInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<IASZone.IASInfoData>(receiveData["Data"].ToString());
|
| | | //图标
|
| | | var localDevice = Common.LocalDevice.Current.GetDevice(ias.DeviceAddr, ias.DeviceEpoint);
|
| | | var localDevice = HdlDeviceCommonLogic.Current.GetDevice(ias.DeviceAddr, ias.DeviceEpoint);
|
| | | if (localDevice == null)
|
| | | {
|
| | | recordInfo.IconPath = "Device/Sensor.png";
|
| | | //消息类型:传感器
|
| | | var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A402");
|
| | | var infoContent = HdlDeviceCommonLogic.Current.GetDeviceModelIdNameInfo("A402");
|
| | | recordInfo.MsgObjectText = infoContent != null ? infoContent.A官方名字 : string.Empty;
|
| | | }
|
| | | else
|
| | | {
|
| | | string selectPath = string.Empty;
|
| | | string unselecPath = string.Empty;
|
| | | Common.LocalDevice.Current.GetDeviceIcon(localDevice, ref unselecPath, ref selectPath);
|
| | | HdlDeviceCommonLogic.Current.GetDeviceIcon(localDevice, ref unselecPath, ref selectPath);
|
| | | recordInfo.IconPath = unselecPath;
|
| | | //消息类型
|
| | | recordInfo.MsgObjectText = Common.LocalDevice.Current.GetDeviceEpointName(localDevice);
|
| | | recordInfo.MsgObjectText = HdlDeviceCommonLogic.Current.GetDeviceEpointName(localDevice);
|
| | | }
|
| | |
|
| | | //消息
|
| | |
| | | private void DoorLockDeviceReportPush(JObject receiveData, ref MessageRecordInfo recordInfo)
|
| | | {
|
| | | //图标
|
| | | var device = Common.LocalDevice.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint"));
|
| | | var device = HdlDeviceCommonLogic.Current.GetDevice(receiveData.Value<string>("DeviceAddr"), receiveData.Value<int>("Epoint"));
|
| | | if (device == null)
|
| | | {
|
| | | recordInfo.IconPath = "Device/IntelligentLocks.png";
|
| | | //消息类型:智能门锁
|
| | | var infoContent = Common.LocalDevice.Current.GetDeviceModelIdNameInfo("A405");
|
| | | var infoContent = HdlDeviceCommonLogic.Current.GetDeviceModelIdNameInfo("A405");
|
| | | recordInfo.MsgObjectText = infoContent != null ? infoContent.A官方名字 : string.Empty;
|
| | | }
|
| | | else
|
| | | {
|
| | | string selectPath = string.Empty;
|
| | | string unselecPath = string.Empty;
|
| | | Common.LocalDevice.Current.GetDeviceIcon(device, ref unselecPath, ref selectPath);
|
| | | HdlDeviceCommonLogic.Current.GetDeviceIcon(device, ref unselecPath, ref selectPath);
|
| | | recordInfo.IconPath = unselecPath;
|
| | | //消息类型
|
| | | recordInfo.MsgObjectText = Common.LocalDevice.Current.GetDeviceEpointName(device);
|
| | | recordInfo.MsgObjectText = HdlDeviceCommonLogic.Current.GetDeviceEpointName(device);
|
| | | }
|
| | | //消息
|
| | | var msgInfo = HdlAlarmsLogic.Current.GetDoorLockAlarmInfo(receiveData);
|