using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mesnac.Action.Base;
using Mesnac.Action.Feeding.Qingquan.BasicInfo;
using System.Windows.Forms;
using Mesnac.Basic;
using Mesnac.Codd.Session;
using Mesnac.Action.Feeding.Qingquan.LockScales;
namespace Mesnac.Action.Feeding.Qingquan.Sys
{
///
/// 系统数据初始化
///
public class SysDataInit : FeedingAction, IAction
{
///
/// 系统数据初始化入口
///
///
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime);
this.InitRecipeCache();
this.InitRecipeWeightCache();
ICSharpCode.Core.LoggingService.Debug("初始化缓存配方...");
}
///
/// 初始化缓存配方
///
public void InitRecipeCache()
{
try
{
string xmlRecipeCache_RecipeInfo = base.GetSysValue("RecipeCache_RecipeInfo");
string xmlRecipeCache_PlanInfo = base.GetSysValue("RecipeCache_PlanInfo");
string xmlRecipeCache_AllWeightInfo = base.GetSysValue("RecipeCache_AllWeightInfo");
string xmlRecipeCache_AllMixingInfo = base.GetSysValue("RecipeCache_AllMixingInfo");
RecipeData.RecipeInfo _RecipeInfo = SerializeHandler.DeserializeObject(xmlRecipeCache_RecipeInfo);
RecipeData.PptPlanInfo _PptPlanInfo = SerializeHandler.DeserializeObject(xmlRecipeCache_PlanInfo);
List _AllWeightInfo = SerializeHandler.DeserializeObject>(xmlRecipeCache_AllWeightInfo);
List _AllMixingInfo = SerializeHandler.DeserializeObject>(xmlRecipeCache_AllMixingInfo);
RecipeCache.Instance.CacheRecipeInfo(_RecipeInfo);
RecipeCache.Instance.CachePlanInfo(_PptPlanInfo);
RecipeCache.Instance.CacheAllWeightInfo(_AllWeightInfo);
RecipeCache.Instance.CacheAllMixingInfo(_AllMixingInfo);
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService.Error("初始化缓存配方失败:" + ex.Message, ex);
}
}
///
/// 初始化提前称量缓存信息
///
public void InitRecipeWeightCache()
{
try
{
string xmlRecipeWeightCache = base.GetSysValue("RecipeWeightCache");
List _AllWeightInfo = SerializeHandler.DeserializeObject>(xmlRecipeWeightCache);
string xmlRecipeWeightCache_CacheFlag = base.GetSysValue("RecipeWeightCache_CacheFlag");
RecipeWeighCache.Instance.CacheAllWeightInfo(_AllWeightInfo);
if (!String.IsNullOrEmpty(xmlRecipeWeightCache_CacheFlag))
{
bool flag = false;
bool.TryParse(xmlRecipeWeightCache_CacheFlag, out flag);
RecipeWeighCache.Instance.CacheFlag = flag;
}
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService.Error("初始化提前称量缓存信息失败:" + ex.Message, ex);
}
}
}
#region 不能连通网络,自动转为单机版
public class SysVersionConfig : FeedingAction, IAction
{
private static bool _isFirstRun = true;
#region IAction 成员
public void Run(RuntimeParameter runtime)
{
base.RunIni(runtime);
if (base.NetType == NetTypes.Local)
{
return;
}
//bool isConnect = PlanCommon.PingIpOrDomainName(base.GetConfigValue("ServerIP", "127.0.0.1"));
bool isConnect = PlanCommon.IsCanConnectServer();
if (!isConnect)
{
//网络连通失败,自动把base.NetType设置为NetTypes.Local
base.SetGlobalNetType(NetTypes.Local);
//RunSchema.Instance.UpdateNodeValueToRunSchema("NetType", "0");
MessageBox.Show("未能连接到网络库,系统自动为您转化为单机版。", Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (SysVersionConfig._isFirstRun == true)
{
//首次运行订阅工作台关闭事件
Mesnac.Gui.Workbench.WorkbenchSingleton.Workbench.ShutDown += new EventHandler(Workbench_ShutDown);
TimerRunService.Instance.Start(); //启动定时器服务
SysVersionConfig._isFirstRun = false;
}
if (base.GetConfigValue("IsLockScales", "0") == "1")
{
//启用锁秤
LockScaleService.Instance.Start(); //启动锁秤服务
}
}
protected void Workbench_ShutDown(object sender, EventArgs e)
{
TimerRunService.Instance.Stop();
LockScaleService.Instance.Stop();
}
#endregion
}
#endregion
}