wei
2021-08-21 ec1d7cb35b99f01be0151c5b6f0c0fc2fa30ab95
HDL_ON/Entity/Function/SecurityAlarm.cs
@@ -6,108 +6,17 @@
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()
        {
            pushConfigs.Add(new SecurityPushConfig()
            {
                pushMethod = "APP",
                pushTarget = new List<string>() { UserInfo.Current.ID }
            });
        }
        /// <summary>
        /// 安防云端id
        /// </summary>
@@ -125,7 +34,9 @@
        /// </summary>
        public string delay;
        /// <summary>
        /// 状态 enable布防、disable撒防
        /// 状态
        /// 布防:enable
        /// 撒防:disable
        /// </summary>
        public string status = "disable";
        /// <summary>
@@ -183,6 +94,8 @@
        public string SaveInfo()
        {
            HttpServerRequest hsr = new HttpServerRequest();
            this.noticeConfig.enable = true;
            this.noticeConfig.noticeContent = Language.StringByID(StringId.SecurityAlarmTipString).Replace("{0}", name);
            if (string.IsNullOrEmpty(sid))
            {
                NewSid();
@@ -190,7 +103,8 @@
                if (pack.Code == StateCode.SUCCESS)
                {
                    SaveFile();
                }else
                }
                else
                {
                    sid = "";
                }
@@ -246,9 +160,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;
@@ -337,6 +251,11 @@
        /// 安防输入条件
        /// </summary>
        public List<SecurityInputCondition> condition = new List<SecurityInputCondition>();
        /// <summary>
        /// 判断条件
        /// </summary>
        public string comparator = "=";
        /// <summary>
        /// 加入输入条件
@@ -636,4 +555,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 string alarm ="false";
    }
}