using Euro.Transfer.Base; using System; using System.Linq; using System.Windows.Forms; namespace Euro.Transfer.Jobs.Transfer { public class Job : ServiceTask { /// /// 任务开始 /// 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; } } /// /// 任务停止 /// protected override void Stop() { this.mIsRunning = false; } /// /// 执行代辦提醒邏輯 /// 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); } } } }