HDL Home App 第二版本 旧平台金堂用 正在使用
hxb
2022-08-30 25429f085093d89d543a0b90e30d0d62d1b7dac9
ZigbeeApp/Shared/Phone/Login/Logic/AccountLogic.cs
New file
@@ -0,0 +1,191 @@
using System;
using System.Text;
using System.Text.RegularExpressions;
using Shared.Common;
namespace Shared.Phone.Login
{
    public class AccountLogic
    {
        #region ◆ 变量____________________________
        /// <summary>
        /// _instance
        /// </summary>
        private static AccountLogic _instance;
        /// <summary>
        /// Instance
        /// </summary>
        public static AccountLogic Instance
        {
            get
            {
                if(_instance==null)
                {
                    _instance = new AccountLogic();
                }
                return _instance;
            }
        }
        #endregion
        #region ◆ 邮箱____________________________
        /// <summary>
        /// 检查邮箱合法性
        /// </summary>
        /// <param name="email"></param>
        /// <returns></returns>
        public bool CheckEmail(string email)
        {
            var regex= new  Regex(CommonPage.EmailRegexStr);
            return regex.IsMatch(email);
        }
        #endregion
        #region ◆ 手机____________________________
        /// <summary>
        /// 检查手机号合法性
        /// </summary>
        /// <param name="phone"></param>
        /// <returns></returns>
        public bool CheckPhone(string phone)
        {
            var regex = new Regex(CommonPage.PhoneForForeignRegexStr);
            return regex.IsMatch(phone);
        }
        /// <summary>
        /// 检查手机号合法性、区分区号
        /// </summary>
        /// <param name="phone">手机号</param>
        /// <param name="zoneCode">区号</param>
        /// <returns></returns>
        public bool CheckPhoneWithZone(string phone, string zoneCode)
        {
            if (zoneCode == "86")
            {
                var regex = new Regex(CommonPage.PhoneRegexStr);
                return regex.IsMatch(phone);
            }
            else
            {
                var regex = new Regex(CommonPage.PhoneForForeignRegexStr);
                return regex.IsMatch(phone);
            }
        }
        #endregion
        #region ◆ 密码____________________________
        /// <summary>
        /// 检查密码长度合法性
        /// </summary>
        /// <param name="password"></param>
        /// <returns></returns>
        public bool CheckPwdLength(string password)
        {
            if (password.Trim().Length >= 6 && password.Trim().Length <= 13)
            {
                return true;
            }
            return false;
        }
        #endregion
        #region ◆ 经纬度__________________________
        /// <summary>
        /// ReceiveAppLatAndLon
        /// </summary>
        /// <param name="lat"></param>
        /// <param name="lon"></param>
        public async void ReceiveAppLatAndLon(string lon, string lat)
        {
            try
            {
                var requestObj = new SendDataToServer.ReceiveAppLatAndLonObj
                {
                    Longitude = lon,
                    Latitude = lat
                };
                var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject(requestObj);
                var revertObj = RequestHttpsZigbeeAsync("ProcessRange/ReceiveAppLatAndLon", System.Text.Encoding.UTF8.GetBytes(requestJson));
                if (UserCenter.UserCenterResourse.HideOption.WriteGpsPoint == 1)
                {
                    string flage = revertObj == null ? "false" : revertObj.StateCode;
                    string txtvalue = "lon:" + lon + " lat:" + lat + " " + flage;
                    HdlMessageLogic.Current.ShowMassage(ShowMsgType.Tip, txtvalue);
                    UserCenter.HdlLogLogic.Current.WriteLog(-1, "经纬度上报  " + txtvalue);
                }
            }
            catch { }
        }
        /// <summary>
        /// 请求服务器方法
        /// 指定一个Url,和请求方法,数据,Cookie,得到响应的数据
        /// </summary>
        /// <param name="requestUrl">请求Url</param>
        /// <param name="byteData">请求的的数据</param>
        /// <returns>得到响应的数据</returns>
        public Shared.Common.ResponseEntity.ResponsePack RequestHttpsZigbeeAsync(string requestUrl, byte[] byteData)
        {
            string result = RequestHttpsZigbeeResultAsync(requestUrl, byteData);
            if (result != null)
            {
                try
                {
                    var data = Newtonsoft.Json.JsonConvert.DeserializeObject<Shared.Common.ResponseEntity.ResponsePack>(result);
                    return data;
                }
                catch (Exception ex)
                {
                    System.Console.WriteLine(ex.Message);
                }
            }
            return null;
        }
        /// <summary>
        /// 请求服务器方法
        /// 指定一个Url,和请求方法,数据,Cookie,得到响应的数据
        /// </summary>
        /// <param name="requestUrl">请求Url</param>
        /// <param name="byteData">请求的的数据</param>
        /// <returns>得到响应的数据</returns>
        public string RequestHttpsZigbeeResultAsync(string requestUrl, byte[] byteData)
        {
            var result = RequestHttpsZigbeeBytesResultAsync(requestUrl, byteData);
            if (result != null)
            {
                return Encoding.UTF8.GetString(result);
            }
            return null;
        }
        /// <summary>
        /// 请求服务器方法
        /// 指定一个Url,和请求方法,数据,Cookie,得到响应的数据
        /// </summary>
        /// <param name="requestUrl">请求Url</param>
        /// <param name="byteData">请求的的数据</param>
        /// <param name="requestMethod">POST 或者 GET 等等</param>
        /// <returns>得到响应的数据</returns>
        public byte[] RequestHttpsZigbeeBytesResultAsync(string requestUrl, byte[] byteData, string requestMethod = "POST")
        {
            //请求Url的完成路径
            var requestHost = "https://global.hdlcontrol.com/GeofenceService";
            var fullUrl = $"{requestHost}/{requestUrl}";
            return CommonPage.Instance.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.Token, requestMethod);
        }
        #endregion
    }
}