using System;
using System.Collections.Generic;
namespace Shared.Common
{
[System.Serializable]
public class Config
{
private const string fileName = "Config.json";
private static Config config = null;
public static Config Instance
{
get
{
if (config == null)
{
ReFresh();
}
return config;
}
}
///
/// 服务器注册ID
///
public string RegistrationID = string.Empty;
///
/// 账户登录成功时的时间
///
public DateTime LoginDateTime = DateTime.MinValue;
///
///
///
[Newtonsoft.Json.JsonIgnore]
public bool IsLogin
{
get
{
return (DateTime.Now - LoginDateTime).Days < 7;
}
}
public static void ReFresh()
{
var file = Shared.IO.FileUtils.ReadFile(fileName);
config = Newtonsoft.Json.JsonConvert.DeserializeObject(System.Text.Encoding.UTF8.GetString(file));
if (config == null)
{
config = new Config { };
}
if (config.PasswordEncrypt != string.Empty)
{
//解密
config.Password = Phone.UserCenter.UserCenterLogic.DecryptPassword("hD1(La3o", config.PasswordEncrypt);
}
}
///
/// 账户登录成功的账户类型(此变量默认为0,并且不赋值)
///
[Newtonsoft.Json.JsonIgnore]
public int AccountType = 0;
///
/// 当前登录的帐号
///
public string Account = string.Empty;
///
/// 当前帐号密码
///
[Newtonsoft.Json.JsonIgnore]
public string Password = string.Empty;
///
/// 加密密码
///
public string PasswordEncrypt = string.Empty;
///
/// 短信登录返回的md5后的密码
///
public string MD5PWD = string.Empty;
///
/// 登陆账号的Guid
///
public string Guid = string.Empty;
///
/// 成员请求控制主帐号此住宅时请求基地址
///
public string AdminRequestBaseUrl = string.Empty;
///
/// 成员请求控制主帐号此住宅时请求基地址的LoginAccessToken的值
///
public string AdminRequestToken = string.Empty;
///
/// 远程连接的Mqtt的客户端ID
///
[Newtonsoft.Json.JsonIgnore]
public string ConnEmqClientId = string.Empty;
///
/// 当前登录的账号是不是之前的账号
///
[Newtonsoft.Json.JsonIgnore]
public bool TheSameLoginAccount = false;
///
/// 当前帐号的Token
///
[Newtonsoft.Json.JsonIgnore]
public string Token
{
get
{
string md5Password;
if (string.IsNullOrEmpty(Password))
{
//用于短信登录密码为
md5Password = MD5PWD;
}
else
{
var result = System.Text.Encoding.UTF8.GetBytes(Password);
var md5 = new System.Security.Cryptography.MD5CryptoServiceProvider();
var output = md5.ComputeHash(result);
md5Password = BitConverter.ToString(output).Replace("-", "");
}
var account_md5Pssword = Account + ":" + md5Password;
var tokenBytes = System.Text.Encoding.UTF8.GetBytes(account_md5Pssword);
return Convert.ToBase64String(tokenBytes).Replace("=", "%3D");
}
}
///
/// 登录时Token(目前这东西没用)
///
[Newtonsoft.Json.JsonIgnore]
public string LoginToken = string.Empty;
public string HomeId = string.Empty;
///
/// 住宅文件列表
///
public List HomeFilePathList = new List();
[Newtonsoft.Json.JsonIgnore]
private House m_Home = null;
///
/// 当前住宅
///
/// The home.
[Newtonsoft.Json.JsonIgnore]
public House Home
{
get
{
if (m_Home != null)
{
return m_Home;
}
m_Home = Phone.UserCenter.HdlResidenceLogic.Current.GetHouseByHouseId(HomeId);
if (m_Home == null)
{
m_Home = new House();
}
return m_Home;
}
set
{
m_Home = value;
}
}
///
/// 全路径
/// 使用方法: FullPath + FileName
///
/// The full path.
[Newtonsoft.Json.JsonIgnore]
public string FullPath
{
get
{
return System.IO.Path.Combine(Shared.IO.FileUtils.RootPath, Instance.Guid, Instance.HomeId);
}
}
///
/// 保存当前对象
///
public void Save()
{
//加密,不能保存明码
this.PasswordEncrypt = Phone.UserCenter.UserCenterLogic.EncryptPassword("hD1(La3o", this.Password);
var bytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
Shared.IO.FileUtils.WriteFileByBytes(fileName, bytes);
ReFresh();
}
}
}