xm
2020-05-07 c1de48884fa145a16a0f8bcee93274dcfaa0ff82
ZigbeeApp/Shared/Phone/UserCenter/DoorLock/DoorLockCommonInfo.cs
@@ -101,10 +101,10 @@
        #region 常开模式 API
        /// <summary>
        /// 获取当前门锁的常开模式
        /// 获取当前门锁的常开模式
        /// </summary>
        /// <param name="doorLock:当前门锁"></param>
        /// <returns>null:没有回复  ; true:门锁常开;false:门锁常关</returns>
        /// <param name="doorLock:当前门锁"></param>
        /// <returns>null:没有回复  ; true:门锁常开;false:门锁常关</returns>
        public static async System.Threading.Tasks.Task<bool?> GetNormallyOpenMode(ZigBee.Device.DoorLock doorLock)
        {
            bool? IsDoorLockNormallyMode = null;
@@ -131,8 +131,8 @@
        /// <summary>
        /// 门锁是否支持常开[这里暂时只有S-One门锁支持,H06C不支持, 后期通过能力值支持]
        /// </summary>
        /// <param name="doorLock:当前门锁"></param>
        /// <returns>true:支持常开;false: 不支持常开</returns>
        /// <param name="doorLock:当前门锁"></param>
        /// <returns>true:支持常开;false: 不支持常开</returns>
        public static bool CanNormallyOpen(ZigBee.Device.DoorLock doorLock)
        {
            var listDevice = new List<CommonDevice> { };
@@ -194,7 +194,7 @@
            {
                if (doorLockMessType == DoorLockMessType.DeviceReport || doorLockMessType == DoorLockMessType.ServicePush)
                {
                    //上报“常开模式”已被取消,app默认了“常开模式”被取消
                    //上报“常开模式”已被取消,app默认了“常开模式”被取消
                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, false);
                }
                else
@@ -243,7 +243,7 @@
                    }
                    else
                    {
                        //创建常开模式的特殊逻辑
                        //创建常开模式的特殊逻辑
                        var resu = await Shared.Phone.Device.Logic.SkipView.LockAddModifyLogic(DoorLockCommonInfo.NormallyOpenModeInvalidTime, doorLock);
                        Application.RunOnMainThread(() =>
                        {
@@ -256,7 +256,7 @@
                }
                else
                {
                    //app操作不取消“常开模式”
                    //app操作不取消“常开模式”
                    DoorLockCommonInfo.NormallyOpenModeValue(doorLock, true);
                }
                action?.Invoke();
@@ -303,14 +303,14 @@
                    {
                        //添加App开启常开模式的历史记录
                        HdlDeviceDoorLockLogic.Current.AddDoorHistoryLog(doorLock, 9002, string.Empty);
                        //app确认取消“常开模式”成功
                        //app确认取消“常开模式”成功
                        NormallyOpenModeValue(doorLock, false);
                        //删除设置常开模式创建的逻辑
                        if (haveLogic)
                        {
                            var resTemp1 = await Shared.Phone.Device.Logic.SkipView.Exist(3);
                            //温居城方法???
                            //此处是否要删除温居城的特殊逻辑
                            //此处是否要删除温居城的特殊逻辑
                        }
                        Application.RunOnMainThread(() =>
                        {
@@ -324,54 +324,54 @@
            };
        }
        /// <summary>
        /// 删除常开模式
        /// </summary>
        /// <param name="doorLock">当前门锁</param>
        /// <param name="action">回调处理更新内容</param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<bool> DelNormallyOpenMode(ZigBee.Device.DoorLock doorLock, Action action = null)
        {
            //app操作取消“常开模式”
            var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
            if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0)
            {
                action?.Invoke();
                return false;
            }
            if (result.defaultControlResponseData.status == 0)
            {
                //app确认取消“常开模式”成功
                NormallyOpenModeValue(doorLock, false);
                action?.Invoke();
                return true;
            }
            return false;
        }
        /// <summary>
        /// 设置常开模式
        /// </summary>
        /// <param name="doorLock">当前门锁</param>
        /// <param name="action">回调处理更新内容</param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<bool> SetNormallyOpenModeFuncAsync(ZigBee.Device.DoorLock doorLock)
        {
            //app设置“常开模式”失败
            var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
            if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0)
            {
                return false;
            }
            if (result.defaultControlResponseData.status == 0)
            {
                //app设置“常开模式”成功
                NormallyOpenModeValue(doorLock, false);
                return true;
            }
            return false;
        /// <summary>
        /// 删除常开模式
        /// </summary>
        /// <param name="doorLock">当前门锁</param>
        /// <param name="action">回调处理更新内容</param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<bool> DelNormallyOpenMode(ZigBee.Device.DoorLock doorLock, Action action = null)
        {
            //app操作取消“常开模式”
            var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
            if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0)
            {
                action?.Invoke();
                return false;
            }
            if (result.defaultControlResponseData.status == 0)
            {
                //app确认取消“常开模式”成功
                NormallyOpenModeValue(doorLock, false);
                action?.Invoke();
                return true;
            }
            return false;
        }
        /// <summary>
        /// 设置常开模式
        /// </summary>
        /// <param name="doorLock">当前门锁</param>
        /// <param name="action">回调处理更新内容</param>
        /// <returns></returns>
        public static async System.Threading.Tasks.Task<bool> SetNormallyOpenModeFuncAsync(ZigBee.Device.DoorLock doorLock)
        {
            //app设置“常开模式”失败
            var result = await doorLock.SetNormallyOpenModeFuncAsync(false);
            if (result == null || result.defaultControlResponseData == null || result.defaultControlResponseData.status != 0)
            {
                return false;
            }
            if (result.defaultControlResponseData.status == 0)
            {
                //app设置“常开模式”成功
                NormallyOpenModeValue(doorLock, false);
                return true;
            }
            return false;
        }
        /// <summary>
@@ -392,7 +392,7 @@
                return;
            }
            //设置常开模式后,您的门锁将始终处于打开状态,确认开启?
            //设置常开模式后,您的门锁将始终处于打开状态,确认开启?
            string msg = Language.StringByID(R.MyInternationalizationString.SetDoorLockNomallyOpen).Replace("{0}", "\r\n");
            var confirm = Language.StringByID(R.MyInternationalizationString.Confrim);
            var alert = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.Confirm, msg, confirm);
@@ -409,7 +409,7 @@
        /// </summary>
        public static async void NomallyOpenModeInvalidTimeDialog(ZigBee.Device.DoorLock doorLock, Action action)
        {
            //失效设置
            //失效设置
            string msgTimeInValidSetting = Language.StringByID(R.MyInternationalizationString.DoorLockOpenAllTheTime);
            var timeConfrim = Language.StringByID(R.MyInternationalizationString.Confrim);
            var alertTimeInValidSetting = new ShowDoorLockMsgControl(ShowDoorLockMsgControl.DoorLockMsgType.InValid, msgTimeInValidSetting, timeConfrim);
@@ -465,8 +465,8 @@
        /// <summary>
        /// 门锁是否支持音量[这里暂时只有S-One门锁支持,H06C不支持,后期通过能力值支持]
        /// </summary>
        /// <param name="doorLock:当前门锁"></param>
        /// <returns></returns>
        /// <param name="doorLock:当前门锁"></param>
        /// <returns></returns>
        public static bool CanVolume(ZigBee.Device.DoorLock doorLock)
        {
            var listDevice = new List<CommonDevice> { };
@@ -481,7 +481,7 @@
        #endregion
        #region 从云端获取的方法
        #region 从云端获取的方法
        /// <summary>
        /// 获取当前账户门锁操作权限(是否被冻结)
        /// </summary>
@@ -633,7 +633,7 @@
                    }
                    //2、读取云端门锁信息
                    //2、读取云端门锁信息
                    var getDoorLockInfoAllList = new List<ZigBee.Device.DoorLock.CloudDoorLockObj> { };
                    var getDoorLockInfoList = await Shared.Phone.UserCenter.DoorLock.DoorLockCommonInfo.GetDoorLockAllAccountInfolist(doorLock);
                    if (getDoorLockInfoList != null)
@@ -1119,7 +1119,7 @@
        /// <returns></returns>
        public static DateTime GetDoorLockZoneTime()
        {
            //通过经度获取时区
            //通过经度获取时区
            var gwZone = int.Parse(CaculateTimeZone(Common.Config.Instance.Home.Longitude));
            //将本地时间转换成世界时
            var utc = DateTime.Now.AddHours(-gwZone);
@@ -1133,7 +1133,7 @@
        }
        /// <summary>
        ///  获取时区
        ///  获取时区
        /// </summary>
        /// <param name="currentLon">currentLon:"+"为东区,“-”为西区</param>
        /// <returns></returns>
@@ -1194,7 +1194,7 @@
        #endregion
        #region 一般方法
        #region 一般方法
        /// <summary>
        /// 显示错误信息窗口
        /// </summary>
@@ -1221,6 +1221,6 @@
            });
        }
        #endregion
        #endregion
    }
}