You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

121 lines
5.1 KiB

using Euro.Transfer.Base;
using System;
using System.Linq;
using System.Windows.Forms;
namespace Euro.Transfer.Jobs.Transfer
{
public class Job : ServiceTask
{
/// <summary>
/// 任务开始
/// </summary>
protected override void Start()
{
try
{
var sCurrTime = DateTime.Now.ToString("HH:mm");
var sCurrWeekDay = DateTime.Now.DayOfWeek.ToString("d");
var sTransferWeeks = Common.ConfigGetValue("", "TransferWeeks");
var sTransferTime = Common.ConfigGetValue("", "TransferTime");
var sIsAuto = Common.ConfigGetValue("", "IsAuto");
//ServiceTools.WriteLog("", "sCurrTime:" + sCurrTime + "sCurrWeekDay:" + sCurrWeekDay + "sTransferWeeks:" + sTransferWeeks + "sTransferTime:" + sTransferTime, true);
if (sIsAuto == "true" || (sTransferWeeks.IndexOf(sCurrWeekDay) > -1 && sCurrTime == sTransferTime))
{
//运行中
this.mIsRunning = true;
//执行工作项
this.RunTransfer();
}
}
catch (Exception error)
{
//异常日志
ServiceTools.WriteLog(Errorlog_Path + @"Transfer\" + DateTime.Now.ToString("yyyyMMdd"), error.ToString(), true);
}
finally
{
//空闲
this.mIsRunning = false;
}
}
/// <summary>
/// 任务停止
/// </summary>
protected override void Stop()
{
this.mIsRunning = false;
}
/// <summary>
/// 执行代辦提醒邏輯
/// </summary>
protected void RunTransfer()
{
try
{
do
{
var sOrgID = Common.ConfigGetValue("", "TransferOrgID");
var sUserID = Common.ConfigGetValue("", "TransferUserID");
var user = hubClient.OnlineUsers.FirstOrDefault(u => (u.OrgId == sOrgID && u.UserId == sUserID));
if (user != null)
{
var sIsTest = Common.ConfigGetValue("", "IsTest");//是否為測試
if (sIsTest == "true")
{
ServiceTools.WriteLog(Debuglog_Path, "Euro.Transfer.Jobs.Transfer:" + user.OrgId + "-" + user.UserId + " " + hubClient.connection.State + " ConnectionId:" + hubClient.connection.ConnectionId, true);
}
if (hubClient.connection.State == Microsoft.AspNet.SignalR.Client.ConnectionState.Connected)
{
var sRegisterOrgID = Common.ConfigGetValue("", "RegisterOrgs");
var saRegisterOrgs = sRegisterOrgID.Split(',');
foreach (string org in saRegisterOrgs)
{
hubClient.msgProxy.Invoke("pushTransfer", org, user.UserId, "", 1);
hubClient.msgProxy.Invoke("pushTransfer", org, user.UserId, "", 2);
hubClient.msgProxy.Invoke("pushTransfer", org, user.UserId, "", 3);
}
}
else
{
hubClient.connection.Start().ContinueWith(t =>
{
if (!t.IsFaulted)
{
//连接成功,调用Register方法
hubClient.msgProxy.Invoke("Register", hubClient.clientOrgId, hubClient.clientId, hubClient.clientName, true);
}
else
{
MessageBox.Show("通訊連接失敗!! 請檢查Tracking後臺系統是否正常運行");
}
});
}
}
else
{
hubClient.connection.Start().ContinueWith(t =>
{
if (!t.IsFaulted)
{
//连接成功,调用Register方法
hubClient.msgProxy.Invoke("Register", hubClient.clientOrgId, hubClient.clientId, hubClient.clientName, true);
}
else
{
MessageBox.Show("通訊連接失敗!! 請檢查Tracking後臺系統是否正常運行");
}
});
}
} while (false);
}
catch (Exception error)
{
//写错误日志
ServiceTools.WriteLog(Errorlog_Path + @"Transfer\" + DateTime.Now.ToString("yyyyMMdd"), error.ToString(), true);
}
}
}
}