xm
2020-04-16 6fa9d69da922c8049f5acfcbb9ce9fd26811024c
ZigbeeApp/Shared/Phone/Login/AccountLogic.cs
New file
@@ -0,0 +1,187 @@
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 = await RequestHttpsZigbeeAsync("ProcessRange/ReceiveAppLatAndLon", System.Text.Encoding.UTF8.GetBytes(requestJson));
                //if (revertObj.StateCode.ToUpper() == "SUCCESS")
                //{
                //    System.Console.WriteLine("上传位置成功" + lat + lon);
                //}
            }
            catch { }
        }
        /// <summary>
        /// 请求服务器方法
        /// 指定一个Url,和请求方法,数据,Cookie,得到响应的数据
        /// </summary>
        /// <param name="requestUrl">请求Url</param>
        /// <param name="byteData">请求的的数据</param>
        /// <returns>得到响应的数据</returns>
        public async System.Threading.Tasks.Task<Shared.Common.ResponseEntity.ResponsePack> RequestHttpsZigbeeAsync(string requestUrl, byte[] byteData)
        {
            string result = await 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 async System.Threading.Tasks.Task<string> RequestHttpsZigbeeResultAsync(string requestUrl, byte[] byteData)
        {
            var result = await 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 async System.Threading.Tasks.Task<byte[]> RequestHttpsZigbeeBytesResultAsync(string requestUrl, byte[] byteData, string requestMethod = "POST")
        {
            //请求Url的完成路径
            var requestHost = "https://global.hdlcontrol.com/GeofenceService";
            var fullUrl = $"{requestHost}/{requestUrl}";
            return await CommonPage.Instance.DoRequestZigbeeHttpsInterface(fullUrl, byteData, Config.Instance.Token, requestMethod);
        }
        #endregion
    }
}