wxr
2021-11-29 dd7e4794fd611de967c6322dd0bb7ffda41c2f7b
HDL_ON/Entity/Function/SecurityAlarm.cs
@@ -7,107 +7,15 @@
namespace HDL_ON.Entity
{
    /// <summary>
    /// 安防中心
    ///
    /// </summary>
    public class SecurityCenter
    {
        static SecurityCenter _center;
        public static SecurityCenter Security
        {
            get
            {
                if(_center == null)
                {
                    _center = new SecurityCenter();
                }
                return _center;
            }
        }
        SecurityAlarm _securityAlarm;
        /// <summary>
        /// 当前布防模式
        /// </summary>
        public SecurityAlarm CurrentDefenseMode
        {
            get
            {
                return _securityAlarm;
            }
            set
            {
                _securityAlarm = value;
                UI.HomePage.LoadEvent_RefreshSecurityStatus();
            }
        }
        HttpServerRequest httpServerRequest = new HttpServerRequest();
        List<SecurityAlarm> _securityAlarmList;
        /// <summary>
        /// 防区列表
        /// </summary>
        public List<SecurityAlarm> securityAlarmList
        {
            get
            {
                if(_securityAlarmList == null)
                {
                  _securityAlarmList =  GetSecurityAlarmList();
                }
                return _securityAlarmList;
            }
        }
        /// <summary>
        /// 读取云端安防列表
        /// </summary>
        /// <returns></returns>
        public List<SecurityAlarm> GetSecurityAlarmList()
        {
            var pack = httpServerRequest.GetSecurityList();
            if(pack.Code == StateCode.SUCCESS)
            {
                var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SecurityAlarm>>(pack.Data.ToString());
                if(revData!= null)
                {
                    _securityAlarmList = revData;
                    return revData;
                }
            }
            return new List<SecurityAlarm>();
        }
        /// <summary>
        /// 状态 enable布防、disable撒防
        /// </summary>
        public string status
        {
            get
            {
                string result = "disable";
                foreach(var s in securityAlarmList)
                {
                    if(s.status == "enable")
                    {
                        result = "enable";
                        break;
                    }
                }
                return result;
            }
        }
    }
    public class SecurityAlarm
    {
        public SecurityAlarm()
        {
        }
        /// <summary>
        /// 安防云端id
        /// </summary>
@@ -123,11 +31,17 @@
        /// <summary>
        /// 安防延时
        /// </summary>
        public string delay;
        public string delay ="0";
        /// <summary>
        /// 状态 enable布防、disable撒防
        /// 状态
        /// 布防:enable
        /// 撒防:disable
        /// </summary>
        public string status = "disable";
        /// <summary>
        /// 报警状态
        /// </summary>
        public bool alarm = false;
        /// <summary>
        /// 类型
        /// "all"--全宅布防,
@@ -176,6 +90,17 @@
            var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
            FileUtlis.Files.WriteFileByBytes(savePath, ssd);
        }
        /// <summary>
        /// 刷新本地数据
        /// </summary>
        /// <returns></returns>
        public SecurityAlarm RefeshData()
        {
            var dataBytes = FileUtlis.Files.ReadFile(savePath);
            var dataString = System.Text.Encoding.UTF8.GetString(dataBytes);
            var temp = Newtonsoft.Json.JsonConvert.DeserializeObject<SecurityAlarm>(dataString);
            return temp;
        }
        /// <summary>
        /// 保存安防信息
@@ -183,6 +108,22 @@
        public string SaveInfo()
        {
            HttpServerRequest hsr = new HttpServerRequest();
            if (string.IsNullOrEmpty(this.noticeConfig.noticeContent))
            {
                this.noticeConfig.noticeContent = Language.StringByID(StringId.SecurityAlarmTipString).Replace("{0}", name);
            }
            if (this.noticeConfig.enable)
            {
                if (this.pushConfigs.Count == 0)
                {
                    pushConfigs.Add(new SecurityPushConfig()
                    {
                        pushMethod = "APP",
                        pushTarget = new List<string>() { UserInfo.Current.ID }
                    });
                }
            }
            if (string.IsNullOrEmpty(sid))
            {
                NewSid();
@@ -190,7 +131,8 @@
                if (pack.Code == StateCode.SUCCESS)
                {
                    SaveFile();
                }else
                }
                else
                {
                    sid = "";
                }
@@ -246,9 +188,9 @@
                int maxId = 1;
                for (int i = 0; i < SecurityCenter.Security.securityAlarmList.Count; i++)
                for (int i = 0; i < FunctionList.List.securities.Count; i++)
                {
                    string s = SecurityCenter.Security.securityAlarmList[i].sid.Substring(20, 4);
                    string s = FunctionList.List.securities[i].sid.Substring(20, 4);
                    int iThisSceneId = Convert.ToInt16(s, 16);
                    if (iThisSceneId > maxId)
                        maxId = iThisSceneId;
@@ -342,8 +284,13 @@
        /// 加入输入条件
        /// 本地判断使用
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public bool addCondition = false;
        //[Newtonsoft.Json.JsonIgnore]
        //public bool addCondition = false;
        /// <summary>
        /// 判断条件
        /// </summary>
        public string comparator = "=";
        [Newtonsoft.Json.JsonIgnore]
        Function _function = null;
@@ -432,11 +379,11 @@
                case SPK.SensorSmoke:
                    foreach (var con in condition)
                    {
                        if (con.value == "true")
                        if (con.value == "true" || con.value == "alarm")
                        {
                            text += Language.StringByID(StringId.InAlarm) + " ";
                        }
                        else if (con.value == "false")
                        else if (con.value == "false" || con.value == "normal")
                        {
                            text += Language.StringByID(StringId.Normal) + " ";
                        }
@@ -458,11 +405,11 @@
                case SPK.SensorWater:
                    foreach (var con in condition)
                    {
                        if (con.value == "true")
                        if (con.value == "true" || con.value == "alarm")
                        {
                            text += Language.StringByID(StringId.WaterLeakage) + " ";
                        }
                        else if (con.value == "false")
                        else if (con.value == "false" || con.value == "normal")
                        {
                            text += Language.StringByID(StringId.Normal) + " ";
                        }
@@ -471,11 +418,11 @@
                case SPK.SensorDoorWindow:
                    foreach (var con in condition)
                    {
                        if (con.value == "true")
                        if (con.value == "true" || con.value == "open")
                        {
                            text += Language.StringByID(StringId.Open) + " ";
                        }
                        else if (con.value == "false")
                        else if (con.value == "false" || con.value == "close")
                        {
                            text += Language.StringByID(StringId.Close) + " ";
                        }
@@ -533,12 +480,18 @@
        /// </summary>
        public List<SecurityOutputStatus> status = new List<SecurityOutputStatus>();
        /// <summary>
        /// 加入输入条件
        /// 本地判断使用
        /// </summary>
        //[Newtonsoft.Json.JsonIgnore]
        //public bool addCondition = false;
        [Newtonsoft.Json.JsonIgnore]
        public bool addCondition = false;
        public string name = "";
        [Newtonsoft.Json.JsonIgnore]
        public string RoomName = "";
        [Newtonsoft.Json.JsonIgnore]
        Function _function = null;
@@ -589,7 +542,7 @@
                }
            }else if(target_type == "1")
            {
                text = Language.StringByID(StringId.Open);
            }
            return text;
@@ -613,7 +566,7 @@
        /// <summary>
        /// 是否开启通知
        /// </summary>
        public bool enable;
        public bool enable = true;
        /// <summary>
        /// 通知内容
        /// </summary>
@@ -636,4 +589,23 @@
        /// </summary>
        public List<string> pushTarget = new List<string>();
    }
    /// <summary>
    /// A协议控制数据的对象
    /// </summary>
    public class SecurityStatusObj
    {
        public List<SecurityStatusData> objects = new List<SecurityStatusData>();
        public string time_stamp = "";
        public string id = "";
    }
    public class SecurityStatusData
    {
        public string sid;
        public string status ="disable" ;
        public bool alarm = false;
    }
}