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.
350 lines
11 KiB
350 lines
11 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.ComponentModel; |
|
using System.Diagnostics; |
|
using System.Drawing; |
|
using System.Media; |
|
using System.Net; |
|
using System.Text; |
|
using System.Threading; |
|
using System.Timers; |
|
using System.Windows.Forms; |
|
using iMonitorAPI; |
|
using iMonitorApp.Classes; |
|
using iMonitorApp.Properties; |
|
|
|
namespace iMonitorApp |
|
{ |
|
// Token: 0x0200001C RID: 28 |
|
public partial class ParentForm : Form |
|
{ |
|
// Token: 0x060000C9 RID: 201 RVA: 0x00008E3C File Offset: 0x0000703C |
|
public ParentForm() |
|
{ |
|
this.InitializeComponent(); |
|
Settings.Default.CurrentIP = Config.GetIP4Address(); |
|
this.pdForm = new PhoneDialer(this); |
|
this.pdForm.MdiParent = this; |
|
this.pdForm.Show(); |
|
new StackAlarm |
|
{ |
|
MdiParent = this |
|
}.Show(); |
|
this.backgroundWorker1.WorkerReportsProgress = true; |
|
this.backgroundWorker1.DoWork += this.backgroundWorker1_DoWork; |
|
this.backgroundWorker1.RunWorkerCompleted += this.backgroundWorker1_RunWorkerCompleted; |
|
this.marketAlertTimer = new System.Threading.Timer(new TimerCallback(this.MarketAlertProc), null, 100, Settings.Default.TimerMarketDataChecks * 1000); |
|
this.tradeAlertTimer = new System.Threading.Timer(new TimerCallback(this.TradeAlertProc), null, 100, Settings.Default.TimerTradeChecks * 1000); |
|
this.heartBeatTimer = new System.Threading.Timer(new TimerCallback(this.SendAMHeartBeat), null, 100, Settings.Default.ExternalHeartbeatTimer * 1000); |
|
} |
|
|
|
// Token: 0x060000CA RID: 202 RVA: 0x00008F88 File Offset: 0x00007188 |
|
private void iTradeTimer_Elapsed(object sender, ElapsedEventArgs e) |
|
{ |
|
throw new NotImplementedException(); |
|
} |
|
|
|
// Token: 0x060000CB RID: 203 RVA: 0x00008F90 File Offset: 0x00007190 |
|
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) |
|
{ |
|
this.tss_working.Text = "market data check complete"; |
|
} |
|
|
|
// Token: 0x060000CC RID: 204 RVA: 0x00008FA4 File Offset: 0x000071A4 |
|
private void ExitToolsStripMenuItem_Click(object sender, EventArgs e) |
|
{ |
|
this.isClosing = true; |
|
Application.Exit(); |
|
Environment.Exit(0); |
|
} |
|
|
|
// Token: 0x060000CD RID: 205 RVA: 0x00008FBC File Offset: 0x000071BC |
|
private void optionsToolStripMenuItem_Click(object sender, EventArgs e) |
|
{ |
|
SettingsForm settingsForm = new SettingsForm(); |
|
settingsForm.ShowDialog(); |
|
} |
|
|
|
// Token: 0x060000CE RID: 206 RVA: 0x00008FD8 File Offset: 0x000071D8 |
|
public void SendAMHeartBeat(object state) |
|
{ |
|
bool primary = Settings.Default.Primary; |
|
if (primary) |
|
{ |
|
try |
|
{ |
|
Stopwatch stopwatch = new Stopwatch(); |
|
stopwatch.Start(); |
|
this.Status("Sending Heartbeat...", "tss_heartbeat", Color.Yellow); |
|
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(Settings.Default.ExternalHeartbeatURL); |
|
string str = Convert.ToBase64String(Encoding.ASCII.GetBytes(Settings.Default.ExternalHeartbeatUsername + ":" + Settings.Default.ExternalHeartbeatPassword)); |
|
httpWebRequest.Headers.Add("Authorization", "Basic " + str); |
|
httpWebRequest.ReadWriteTimeout = 20000; |
|
httpWebRequest.Timeout = 20000; |
|
httpWebRequest.Method = "GET"; |
|
this.Status("Waiting For Response..", "tss_heartbeat", Color.Orange); |
|
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); |
|
stopwatch.Stop(); |
|
this.Status(httpWebResponse.StatusDescription + stopwatch.Elapsed.TotalSeconds.ToString() + " secs", "tss_heartbeat", Color.Green); |
|
httpWebResponse.Close(); |
|
httpWebRequest.Abort(); |
|
} |
|
catch (Exception ex) |
|
{ |
|
this.Status("Unable to send heartbeat at " + DateTime.Now.ToString() + " Error:" + ex.Message, "tss_heartbeat", Color.Red); |
|
} |
|
} |
|
} |
|
|
|
// Token: 0x060000CF RID: 207 RVA: 0x00009170 File Offset: 0x00007370 |
|
private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) |
|
{ |
|
bool flag = e.Button == MouseButtons.Left; |
|
if (flag) |
|
{ |
|
base.Show(); |
|
base.WindowState = this.lastWindowState; |
|
} |
|
} |
|
|
|
// Token: 0x060000D0 RID: 208 RVA: 0x000091A8 File Offset: 0x000073A8 |
|
private void ParentForm_FormClosing(object sender, FormClosingEventArgs e) |
|
{ |
|
bool flag = this.isClosing; |
|
if (!flag) |
|
{ |
|
e.Cancel = true; |
|
base.Hide(); |
|
this.notifyIcon1.ShowBalloonTip(3000, "iMonitor!!", "iMonitor is still running. \r\nDoubleClick to access.", ToolTipIcon.Info); |
|
} |
|
} |
|
|
|
// Token: 0x060000D1 RID: 209 RVA: 0x000091F0 File Offset: 0x000073F0 |
|
private void ParentForm_Resize(object sender, EventArgs e) |
|
{ |
|
bool flag = base.WindowState == FormWindowState.Minimized; |
|
if (flag) |
|
{ |
|
base.ShowInTaskbar = false; |
|
} |
|
else |
|
{ |
|
base.ShowInTaskbar = true; |
|
} |
|
} |
|
|
|
// Token: 0x060000D2 RID: 210 RVA: 0x0000921D File Offset: 0x0000741D |
|
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) |
|
{ |
|
new MarketData().CheckAlarms(); |
|
} |
|
|
|
// Token: 0x060000D3 RID: 211 RVA: 0x0000922B File Offset: 0x0000742B |
|
private void testToolStripMenuItem_Click(object sender, EventArgs e) |
|
{ |
|
this.backgroundWorker1.RunWorkerAsync(); |
|
} |
|
|
|
// Token: 0x060000D4 RID: 212 RVA: 0x0000923C File Offset: 0x0000743C |
|
private void TradeAlertProc(object state) |
|
{ |
|
bool flag = !Settings.Default.Primary; |
|
if (!flag) |
|
{ |
|
CountdownEvent countdownEvent = new CountdownEvent(6); |
|
new Thread(delegate() |
|
{ |
|
this.Status(TradeAlerts.CheckWorkingOrders(), "tss_working", Color.Transparent); |
|
countdownEvent.Signal(); |
|
}).Start(); |
|
new Thread(delegate() |
|
{ |
|
this.Status(TradeAlerts.CheckNewOrders(), "tss_new", Color.Transparent); |
|
countdownEvent.Signal(); |
|
}).Start(); |
|
new Thread(delegate() |
|
{ |
|
this.Status(TradeAlerts.CheckBaskets(), "tss_basket", Color.Transparent); |
|
countdownEvent.Signal(); |
|
}).Start(); |
|
new Thread(delegate() |
|
{ |
|
this.Status(TradeAlerts.CheckOutbox(), "tss_outbox", Color.Transparent); |
|
countdownEvent.Signal(); |
|
}).Start(); |
|
new Thread(delegate() |
|
{ |
|
this.Status(TradeAlerts.CheckGun(), "tss_gun", Color.Transparent); |
|
countdownEvent.Signal(); |
|
}).Start(); |
|
countdownEvent.Wait(); |
|
} |
|
} |
|
|
|
// Token: 0x060000D5 RID: 213 RVA: 0x000092F8 File Offset: 0x000074F8 |
|
private void MarketAlertProc(object state) |
|
{ |
|
bool flag = !Settings.Default.Primary; |
|
if (!flag) |
|
{ |
|
CountdownEvent countdownEvent = new CountdownEvent(1); |
|
new Thread(delegate() |
|
{ |
|
MarketData marketData = new MarketData(); |
|
this.Status(marketData.CheckAlarms(), "tss_market", Color.Transparent); |
|
countdownEvent.Signal(); |
|
}).Start(); |
|
countdownEvent.Wait(); |
|
} |
|
} |
|
|
|
// Token: 0x060000D6 RID: 214 RVA: 0x00009355 File Offset: 0x00007555 |
|
private void tileToolStripMenuItem_Click(object sender, EventArgs e) |
|
{ |
|
base.LayoutMdi(MdiLayout.TileVertical); |
|
} |
|
|
|
// Token: 0x060000D7 RID: 215 RVA: 0x00009360 File Offset: 0x00007560 |
|
public void Status(string msg, string labelname, Color c) |
|
{ |
|
StatusStrip statusStrip = (StatusStrip)base.Controls["statusStrip"]; |
|
ToolStripStatusLabel toolStripStatusLabel = (ToolStripStatusLabel)statusStrip.Items[labelname]; |
|
bool flag = !statusStrip.IsHandleCreated; |
|
if (flag) |
|
{ |
|
IntPtr handle = statusStrip.Handle; |
|
} |
|
bool invokeRequired = statusStrip.InvokeRequired; |
|
if (invokeRequired) |
|
{ |
|
statusStrip.Invoke(new ParentForm.updateTextCallback(this.updateText), new object[] |
|
{ |
|
msg, |
|
labelname, |
|
c |
|
}); |
|
} |
|
else |
|
{ |
|
toolStripStatusLabel.Text = msg; |
|
statusStrip.Refresh(); |
|
} |
|
} |
|
|
|
// Token: 0x060000D8 RID: 216 RVA: 0x000093F8 File Offset: 0x000075F8 |
|
private void updateText(string text, string labelname, Color c) |
|
{ |
|
StatusStrip statusStrip = (StatusStrip)base.Controls["statusStrip"]; |
|
ToolStripStatusLabel toolStripStatusLabel = (ToolStripStatusLabel)statusStrip.Items[labelname]; |
|
toolStripStatusLabel.Text = text; |
|
toolStripStatusLabel.BackColor = c; |
|
} |
|
|
|
// Token: 0x060000D9 RID: 217 RVA: 0x00009440 File Offset: 0x00007640 |
|
private void aboutToolStripMenuItem_Click(object sender, EventArgs e) |
|
{ |
|
AboutBox1 aboutBox = new AboutBox1(); |
|
aboutBox.ShowDialog(); |
|
} |
|
|
|
// Token: 0x060000DA RID: 218 RVA: 0x0000945B File Offset: 0x0000765B |
|
private void phoneDialerToolStripMenuItem_Click(object sender, EventArgs e) |
|
{ |
|
this.pdForm.Show(); |
|
} |
|
|
|
// Token: 0x060000DB RID: 219 RVA: 0x0000946C File Offset: 0x0000766C |
|
private void FixingAlertProc(object state) |
|
{ |
|
try |
|
{ |
|
bool flag = (DateTime.Now - new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 7, 25, 0)).TotalSeconds <= 11.0 && (DateTime.Now - new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, 7, 25, 0)).TotalSeconds > 0.0; |
|
if (flag) |
|
{ |
|
this._fixings = new Fixings(); |
|
this._fixings.GetFixings("EE02"); |
|
this._fixings.GetFixings("RIN02"); |
|
this._doneAlready.Clear(); |
|
} |
|
foreach (KeyValuePair<DateTime, List<string>> keyValuePair in this._fixings.fixings) |
|
{ |
|
bool flag2 = (keyValuePair.Key - DateTime.Now).TotalSeconds < 11.0 && (keyValuePair.Key - DateTime.Now).TotalSeconds > 0.0; |
|
if (flag2) |
|
{ |
|
new SoundPlayer(Resources.OpeningBellRingTone).Play(); |
|
bool flag3 = this._doneAlready.Count >= this._fixings.fixings.Count || (DateTime.Now.TimeOfDay < new TimeSpan(7, 0, 0) && DateTime.Now.TimeOfDay >= new TimeSpan(6, 59, 50)); |
|
if (flag3) |
|
{ |
|
} |
|
} |
|
bool flag4 = (keyValuePair.Key - DateTime.Now).TotalMinutes < 11.0 && (keyValuePair.Key - DateTime.Now).TotalMinutes > 1.0 && !this._doneAlready.ContainsKey(keyValuePair.Key); |
|
if (flag4) |
|
{ |
|
iMonitor.SendAlarm(string.Join(",", keyValuePair.Value) + " Fixing in 10 minutes", new List<string> |
|
{ |
|
"etrading" |
|
}, "l", "NULL", true, false, "FALSE", 5, 15, "http://10.153.64.31:5001/iMonitor/Responder.aspx"); |
|
this._doneAlready.Add(keyValuePair.Key, keyValuePair.Value); |
|
} |
|
bool flag5 = (keyValuePair.Key - DateTime.Now).TotalMinutes < 0.0; |
|
if (flag5) |
|
{ |
|
bool flag6 = !this._doneAlready.ContainsKey(keyValuePair.Key); |
|
if (flag6) |
|
{ |
|
this._doneAlready.Add(keyValuePair.Key, keyValuePair.Value); |
|
} |
|
} |
|
} |
|
} |
|
catch |
|
{ |
|
} |
|
} |
|
|
|
// Token: 0x060000DC RID: 220 RVA: 0x000038AE File Offset: 0x00001AAE |
|
private void FixingRefillAlertProc(object state) |
|
{ |
|
} |
|
|
|
// Token: 0x0400008A RID: 138 |
|
private int childFormNumber = 0; |
|
|
|
// Token: 0x0400008B RID: 139 |
|
private FormWindowState lastWindowState; |
|
|
|
// Token: 0x0400008C RID: 140 |
|
private TradeAlerts ta = new TradeAlerts(); |
|
|
|
// Token: 0x0400008D RID: 141 |
|
private System.Threading.Timer tradeAlertTimer; |
|
|
|
// Token: 0x0400008E RID: 142 |
|
private System.Threading.Timer marketAlertTimer; |
|
|
|
// Token: 0x0400008F RID: 143 |
|
private System.Threading.Timer fixingsTimer; |
|
|
|
// Token: 0x04000090 RID: 144 |
|
private System.Threading.Timer fixingsReFillTimer; |
|
|
|
// Token: 0x04000091 RID: 145 |
|
private System.Threading.Timer heartBeatTimer; |
|
|
|
// Token: 0x04000092 RID: 146 |
|
private PhoneDialer pdForm; |
|
|
|
// Token: 0x04000093 RID: 147 |
|
private Fixings _fixings; |
|
|
|
// Token: 0x04000094 RID: 148 |
|
private bool isClosing = false; |
|
|
|
// Token: 0x04000095 RID: 149 |
|
private Dictionary<DateTime, List<string>> _doneAlready = new Dictionary<DateTime, List<string>>(); |
|
|
|
// Token: 0x02000040 RID: 64 |
|
// (Invoke) Token: 0x0600021B RID: 539 |
|
public delegate void updateTextCallback(string text, string labelname, Color c); |
|
} |
|
}
|
|
|