using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using WeighBusiness.BL;
using WeighBusiness.BO;
namespace Update.Utils
{
/*
添加新配置的操作:
1.添加属性(如果set为private,则还要添加对应的设置方法);
2.在GetSetting方法中,参照方法里的格式(最后几行代码),添加新属性的语句(用于保存);
3.在InitConfig方法中,参照方法里的格式,添加新属性的语句(用于从数据库中,查询出相应的配置)。
* */
///
/// 配置(保存在数据库中)。
/// 登录后,更新上次登录的用户为当前用户
///
public static class Config
{
static Config()
{
SetTerminalID(0);//TODO:未完成,用0做测试
var configFromDatabase = SettingBL.Load();
ID = configFromDatabase.ID;
SetRecentUser(configFromDatabase.RecentUserID, configFromDatabase.RecentUserName);
InitConfig(configFromDatabase.Setting);
}
#if DEBUG
public static readonly string LoginAddress = "http://localhost:2000/MainSystem/LoginService.svc";
public static readonly string WeighAddress = "http://localhost:2000/MainSystem/O/Breed/WeighTerminalService.svc";
#endif
private static long ID;//用于保存配置
///
/// 终端ID。用于指明是哪个终端
///
public static long TerminalID { get; private set; }//TODO:未完成,用0做测试
///
/// 终端管理员
///
public const string TerminalSystemUserName = "system";//终端管理员
///
/// 上次登录的用户ID。登录后,设置为当前用户
///
public static long RecentUserID { get; private set; }//参见登录按钮
///
/// 上次登录的用户Name。登录后,设置为当前用户
///
public static string RecentUserName { get; private set; }//参见登录按钮
///
/// 系统IP。用于同步数据
///
public static string SystemIP { get; private set; }
///
/// 默认会计单位ID。
///
public static long AccountingUnit_ID { get; private set; }
///
/// 默认会计单位Name。
///
public static string AccountingUnit_Name { get; private set; }
///
/// 车间
///
public static string Workshop { get; private set; }
///
/// 登陆信息
///
public static string Ticket { get; set; }//登陆信息,不保存到数据库中
private static void SetRecentUser(long recentUserID, string recentUserName)
{
RecentUserID = recentUserID;
RecentUserName = recentUserName;
}
public static void SetSystemIP(string ip)
{
SystemIP = ip;
}
public static void SetAccountingUnit(long accountingUnitID, string accountingUnitName)
{
AccountingUnit_ID = accountingUnitID;
AccountingUnit_Name = accountingUnitName;
}
public static void SetTerminalID(long terminalID)
{
TerminalID = terminalID;
}
public static void SetWorkshop(string workshop)
{
Workshop = workshop;
}
///
/// 保存当前配置
///
public static void Save()//保存当前配置
{
var setting = GetSetting();
SettingBL.Save(setting, true);
}
private static SettingData GetSetting()
{
var saveSetting = new SettingData();
saveSetting.ID = ID;
saveSetting.RecentUserID = RecentUserID;
saveSetting.RecentUserName = RecentUserName;
saveSetting.Setting = new Dictionary();
saveSetting.Setting.Add("1", SystemIP);
saveSetting.Setting.Add("2", AccountingUnit_ID.ToString());
saveSetting.Setting.Add("3", AccountingUnit_Name);
saveSetting.Setting.Add("4", TerminalID.ToString());
saveSetting.Setting.Add("5", Workshop);
return saveSetting;
}
private static void InitConfig(Dictionary setting)
{
if (setting.Keys.Contains("1"))
SystemIP = setting["1"];
if (setting.Keys.Contains("2"))
AccountingUnit_ID = long.Parse(setting["2"]);
if (setting.Keys.Contains("3"))
AccountingUnit_Name = setting["3"];
if (setting.Keys.Contains("4"))
TerminalID = long.Parse(setting["4"]);
if (setting.Keys.Contains("5"))
Workshop = setting["5"];
}
}
}