xm
2020-07-14 d87400af518ebc9274f4447f06476959c3aa5102
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlAlarmsLogic.cs
@@ -58,34 +58,27 @@
            this.listDoorLockAlarmInfo.Clear();
            string fileName = DateTime.Now.ToString("yyyyMMdd");
            //判断有没有这个文件
            string fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory, fileName);
            if (System.IO.File.Exists(fullName) == true)
            //安防报警
            string fullName = System.IO.Path.Combine(DirNameResourse.SafeguardAlarmDirectory, fileName);
            var data1 = HdlFileLogic.Current.ReadFileByteContent(fullName);
            if (data1 != null)
            {
                lock (listSafetyAlarmInfo)
                this.listSafetyAlarmInfo = JsonConvert.DeserializeObject<List<SafeguardAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data1));
                if (this.listSafetyAlarmInfo == null)
                {
                    string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
                    var data = Global.ReadFileByDirectory(dir, fileName);
                    this.listSafetyAlarmInfo = JsonConvert.DeserializeObject<List<SafeguardAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data));
                    if (this.listSafetyAlarmInfo == null)
                    {
                        this.listSafetyAlarmInfo = new List<SafeguardAlarmInfo>();
                    }
                    this.listSafetyAlarmInfo = new List<SafeguardAlarmInfo>();
                }
            }
            //门锁记录
            fullName = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory, fileName);
            if (System.IO.File.Exists(fullName) == true)
            fullName = System.IO.Path.Combine(DirNameResourse.DoorLockAlarmDirectory, fileName);
            var data2 = HdlFileLogic.Current.ReadFileByteContent(fullName);
            if (data2 != null)
            {
                lock (listDoorLockAlarmInfo)
                this.listDoorLockAlarmInfo = JsonConvert.DeserializeObject<List<DeviceAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data2));
                if (this.listDoorLockAlarmInfo == null)
                {
                    string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory);
                    var data = Global.ReadFileByDirectory(dir, fileName);
                    this.listDoorLockAlarmInfo = JsonConvert.DeserializeObject<List<DeviceAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data));
                    if (this.listDoorLockAlarmInfo == null)
                    {
                        this.listDoorLockAlarmInfo = new List<DeviceAlarmInfo>();
                    }
                    this.listDoorLockAlarmInfo = new List<DeviceAlarmInfo>();
                }
            }
        }
@@ -141,10 +134,8 @@
                }
                //保存到本地
                var saveData = JsonConvert.SerializeObject(this.listSafetyAlarmInfo);
                var byteData = System.Text.Encoding.UTF8.GetBytes(saveData);
                string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
                Global.WriteFileToDirectoryByBytes(dir, fileName, byteData);
                string fullName = System.IO.Path.Combine(DirNameResourse.SafeguardAlarmDirectory, fileName);
                HdlFileLogic.Current.SaveFileContent(fullName, this.listSafetyAlarmInfo);
                if (UserCenterResourse.DicActionForm.ContainsKey("SafetyManagementMainForm") == true)
                {
@@ -217,10 +208,8 @@
                }
                //保存到本地
                var saveData = JsonConvert.SerializeObject(this.listSafetyAlarmInfo);
                var byteData = System.Text.Encoding.UTF8.GetBytes(saveData);
                string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
                Global.WriteFileToDirectoryByBytes(dir, fileName, byteData);
                string fullName = System.IO.Path.Combine(DirNameResourse.SafeguardAlarmDirectory, fileName);
                HdlFileLogic.Current.SaveFileContent(fullName, this.listSafetyAlarmInfo);
            }
        }
@@ -248,16 +237,15 @@
        {
            lock (listSafetyAlarmInfo)
            {
                string fullPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
                //借用一下自动备份获取指定目录下面的文件的函数
                List<string> listFile = HdlAutoBackupLogic.GetFileFromDirectory(fullPath);
                string fullPath = DirNameResourse.SafeguardAlarmDirectory;
                //获取指定目录下面的文件
                List<string> listFile = HdlFileLogic.Current.GetFileFromDirectory(fullPath);
                //升序
                listFile.Sort();
                var dic = new Dictionary<string, List<SafeguardAlarmInfo>>();
                string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.SafeguardAlarmDirectory);
                for (int i = listFile.Count - 1; i >= 0; i--)
                {
                    var data = Global.ReadFileByDirectory(dir, listFile[i]);
                    var data = HdlFileLogic.Current.ReadFileByteContent(System.IO.Path.Combine(fullPath, listFile[i]));
                    var info = JsonConvert.DeserializeObject<List<SafeguardAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data));
                    if (info == null)
                    {
@@ -309,6 +297,10 @@
                return null;
            }
            IASZone iASZone = (IASZone)i_device;
            if (iASZone.iASInfo == null)
            {
                return null;
            }
            var alarmInfo = new IASZoneReportInfo();
            if (iASZone.iASInfo.Battery == 1)
@@ -323,11 +315,11 @@
            }
            //运动传感器
            if (device.IasDeviceType == 13)
            if (device.IasDeviceType == 13 || device.IasDeviceType == 541)
            {
                if (iASZone.iASInfo.Alarm1 == 1)
                {
                    //有不明物体经过
                    //有人经过
                    alarmInfo.AlarmMsg = Language.StringByID(R.MyInternationalizationString.uHadUnKnowObjectPassed);
                }
            }
@@ -475,10 +467,9 @@
                }
                //保存到本地
                var saveData = JsonConvert.SerializeObject(this.listDoorLockAlarmInfo);
                var byteData = System.Text.Encoding.UTF8.GetBytes(saveData);
                string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory);
                Global.WriteFileToDirectoryByBytes(dir, fileName, byteData);
                string fullName = System.IO.Path.Combine(DirNameResourse.DoorLockAlarmDirectory, fileName);
                HdlFileLogic.Current.SaveFileContent(fullName, this.listDoorLockAlarmInfo);
                return true;
            }
        }
@@ -491,16 +482,15 @@
        {
            lock (listDoorLockAlarmInfo)
            {
                string fullPath = UserCenterLogic.CombinePath(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory);
                //借用一下自动备份获取指定目录下面的文件的函数
                List<string> listFile = HdlAutoBackupLogic.GetFileFromDirectory(fullPath);
                string fullPath = DirNameResourse.DoorLockAlarmDirectory;
                //获取指定目录下面的文件
                List<string> listFile = HdlFileLogic.Current.GetFileFromDirectory(fullPath);
                //升序
                listFile.Sort();
                var dic = new Dictionary<string, List<DeviceAlarmInfo>>();
                string dir = System.IO.Path.Combine(DirNameResourse.LocalMemoryDirectory, DirNameResourse.DoorLockAlarmDirectory);
                for (int i = listFile.Count - 1; i >= 0; i--)
                {
                    var data = Global.ReadFileByDirectory(dir, listFile[i]);
                    var data = HdlFileLogic.Current.ReadFileByteContent(System.IO.Path.Combine(fullPath, listFile[i]));
                    var info = JsonConvert.DeserializeObject<List<DeviceAlarmInfo>>(System.Text.Encoding.UTF8.GetString(data));
                    if (info == null)
                    {