gxc
2019-11-07 a4924de3136289d10cabbf2f61a228387d44ded7
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Common/AccountOption.cs
New file
@@ -0,0 +1,141 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Shared.Phone.UserCenter
{
    /// <summary>
    /// 账号设置信息
    /// </summary>
    public class AccountOption
    {
        /// <summary>
        /// 是否使用指纹验证
        /// </summary>
        public bool FingerprintAuthentication = false;
        /// <summary>
        /// 密码验证
        /// </summary>
        public string PswAuthentication = string.Empty;
        /// <summary>
        /// 手势验证
        /// </summary>
        public string GestureAuthentication = string.Empty;
        /// <summary>
        /// 是否使用远程开锁
        /// </summary>
        public bool DoorUnLockByRemote = false;
        /// <summary>
        /// 是否使用安防快捷方式
        /// </summary>
        public bool SafetyShortcut = false;
        /// <summary>
        /// 密码剩余可输入次数
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int PasswordInputCount = 3;
        /// <summary>
        /// 手势密码剩余可输入次数
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int PasswordGestureInputCount = 5;
        /// <summary>
        /// 检测APP是否能够退出
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public bool AppCanSignout = false;
        /// <summary>
        /// 前一次的住宅ID,这个东西是给UserCenterLogic.InitUserCenterMenmoryAndThread()用的
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string OldHomeStringId = string.Empty;
        /// <summary>
        /// 前一次的登录账号,这个东西是给UserCenterLogic.InitUserCenterMenmoryAndThread()用的
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string OldAccountId = string.Empty;
        /// <summary>
        /// 用户图片目录路径
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public string UserPictruePath = string.Empty;
        /// <summary>
        /// 安防报警信息记录一天内最大的报警数
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int SafetyOnedayMaxAlarmMsgCount = 50;
        /// <summary>
        /// 安防报警信息记录最大天数
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int SafetyMaxAlarmMsgDay = 5;
        /// <summary>
        /// 门锁报警信息记录一天内最大的报警数
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int DoorLockOnedayMaxAlarmMsgCount = 200;
        /// <summary>
        /// 门锁报警信息记录最大天数
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int DoorLockMaxAlarmMsgDay = 5;
        #region ■ 一般方法___________________________
        /// <summary>
        /// 保存
        /// </summary>
        public void Save()
        {
            //加密密码
            string hdlKey = "hD1(La3o";
            string oldPswAuthentication = PswAuthentication;
            PswAuthentication = UserCenterLogic.EncryptPassword(hdlKey, oldPswAuthentication);
            string oldGestureAuthentication = GestureAuthentication;
            GestureAuthentication = UserCenterLogic.EncryptPassword(hdlKey, oldGestureAuthentication);
            var data = Newtonsoft.Json.JsonConvert.SerializeObject(this);
            var byteData = System.Text.Encoding.UTF8.GetBytes(data);
            string fullName = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Common.Config.Instance.Guid, DirNameResourse.AccountOptionFile);
            //写入内容
            Shared.IO.FileUtils.WriteFileByBytes(fullName, byteData);
            //还原明码
            PswAuthentication = oldPswAuthentication;
            GestureAuthentication = oldGestureAuthentication;
        }
        /// <summary>
        /// 加载数据
        /// </summary>
        /// <returns></returns>
        public AccountOption Load()
        {
            string fileName = System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Common.Config.Instance.Guid, DirNameResourse.AccountOptionFile);
            if (System.IO.File.Exists(fileName) == false)
            {
                return new AccountOption();
            }
            var varByte = Shared.IO.FileUtils.ReadFile(fileName);
            string strValue = System.Text.Encoding.UTF8.GetString(varByte);
            var info = Newtonsoft.Json.JsonConvert.DeserializeObject<AccountOption>(strValue);
            //解密密码
            string hdlKey = "hD1(La3o";
            info.PswAuthentication = UserCenterLogic.DecryptPassword(hdlKey, info.PswAuthentication);
            info.GestureAuthentication = UserCenterLogic.DecryptPassword(hdlKey, info.GestureAuthentication);
            return info;
        }
        /// <summary>
        /// 重置密码剩余次数
        /// </summary>
        public void ResetPasswordCount()
        {
            this.PasswordInputCount = 3;
            this.PasswordGestureInputCount = 5;
        }
        #endregion
    }
}