public void SendMultiEventMail() { if (!Mail.CheckIfEmailsAllowed()) { MessageBox.Show("Email sending is disabled"); return; } List <LayData> datalist = new List <LayData>(); CalcParameters cp = new CalcParameters(); foreach (BasicBrokerData book in Bookmakers) { if (book.EMailing) { cp.bookielimit += "|" + book.Name + "|"; } } if (cp.bookielimit == null) { System.Windows.Forms.MessageBox.Show("Select Bookies for emails !!"); return; } cp.limit = FootballHedge.Properties.Settings.Default.MailplLimit; cp.preferedbookie = "All"; if (FootballHedge.Properties.Settings.Default.MailOnlyToday) { cp.today = true; } else { cp.today = false; } CalcHedge(ref datalist, cp); datalist.Sort(); datalist.Reverse(); StringBuilder body = new StringBuilder(); body.Append("<html><body><table>"); foreach (LayData item in datalist) { body.Append("<tr><td>" + item.Match + "</td><td>[" + item.Selection + "]</td><td>" + item.Back + " / " + Math.Round(item.Lay, 2) + "</td><td>(" + item.Bookie + ")</td><td> " + item.LastUpdate + "</td></tr>"); } body.Append("</table></body></html>"); Mail.SendMail("Options", body.ToString()); }
public void Calchedge(ref List <LayData> datalist, List <FData> FootData, CalcParameters cpar) { if (FootData.Count == 0) { return; } for (int id = FootData.Count - 1; id >= 0; id--) { FData item = FootData[id]; if (cpar.today && item.time.Day != DateTime.Now.Day) { continue; } foreach (KeyValuePair <int, X> it in item.XKoef) { BasicBrokerData bookie = MainF.Bookmakers[it.Key]; if (cpar.preferedbookie != "All" && cpar.preferedbookie != bookie.Name) { continue; } if (!cpar.bookielimit.Contains(bookie.Name)) { continue; } if (bookie.Type == BrokerType.BACK) { for (int q = 0; q < 3; q++) { if (it.Value.Koef[q] != 0 && item.Lay[q] != 0 && it.Value.Koef[q] >= bookie.Limit && CalcLayPL(it.Value.Koef[q], item.Lay[q]) > cpar.limit) { StringBuilder selection = new StringBuilder(); switch (q) { case 0: selection.Append("Draw"); break; case 1: selection.Append(item.Team1); break; case 2: selection.Append(item.Team2); break; default: selection.Append("Uknown"); break; } LayData ld = new LayData(); ld.Match = item.Team1 + " - " + item.Team2; ld.Selection = selection.ToString(); ld.Lay = item.Lay[q]; ld.Back = it.Value.Koef[q]; ld.Profit = Math.Round(CalcLayPL(it.Value.Koef[q], item.Lay[q]), 3); ld.Size = item.SizeX[0]; ld.Bookie = bookie.Name; ld.League = item.League; ld.Time = ChangeTimeToString(item.time); ld.LastUpdate = it.Value.LastUpdate; datalist.Add(ld); } } } // end type.Back if (bookie.Type == BrokerType.HANDICAP) { foreach (KeyValuePair <int, X> hi in item.XKoef) { if (MainF.Bookmakers[hi.Key].Type != BrokerType.BACK) { continue; } if (!cpar.bookielimit.Contains(MainF.Bookmakers[hi.Key].Name)) { continue; } if (cpar.preferedbookie != "All" && cpar.preferedbookie != MainF.Bookmakers[hi.Key].Name) { continue; } if (hi.Value.Koef[1] != 0 && hi.Value.Koef[1] < hi.Value.Koef[2] && hi.Value.Koef[1] >= MainF.Bookmakers[hi.Key].Limit && CalcHandicapPL(hi.Value.Koef[1], it.Value.Koef[2]) > cpar.limit) { LayData ld = new LayData(); ld.Match = item.Team1 + " - " + item.Team2; ld.Selection = item.Team1; ld.Lay = it.Value.Koef[2]; ld.Back = hi.Value.Koef[1]; ld.Profit = Math.Round(CalcHandicapPL(ld.Back, ld.Lay), 2); ld.Bookie = MainF.Bookmakers[hi.Key].Name; ld.League = item.League; ld.Size = -1; ld.Time = ChangeTimeToString(item.time); ld.LastUpdate = hi.Value.LastUpdate + " Hand"; datalist.Add(ld); } if (hi.Value.Koef[2] != 0 && hi.Value.Koef[1] > hi.Value.Koef[2] && hi.Value.Koef[2] >= MainF.Bookmakers[hi.Key].Limit && CalcHandicapPL(hi.Value.Koef[2], it.Value.Koef[1]) > cpar.limit) { LayData ld = new LayData(); ld.Match = item.Team1 + " - " + item.Team2; ld.Selection = item.Team2; ld.Lay = it.Value.Koef[1]; ld.Back = hi.Value.Koef[2]; ld.Profit = Math.Round(CalcHandicapPL(ld.Back, ld.Lay), 2); ld.Bookie = MainF.Bookmakers[hi.Key].Name; ld.League = item.League; ld.Size = -1; ld.Time = ChangeTimeToString(item.time); ld.LastUpdate = hi.Value.LastUpdate + " Hand"; datalist.Add(ld); } } } } } }
public void CalcHedge(ref List <LayData> datalist, CalcParameters cpar) { DataBase DB = new DataBase(this); DB.Calchedge(ref datalist, FootData, cpar); }
public void UpdateHedgeDataInListview() { Task.Factory.StartNew(() => { int index = 0; bool Today = false; bool ViewAll = false; Dispatcher.Invoke((Action)(() => { BackgroundGrid.Background = SystemColors.ActiveBorderBrush; TabCont.SelectedIndex = 0; LWHedge.Items.Clear(); if (ComboboxActiveBookies.SelectedIndex != 0) { index = ComboboxActiveBookies.SelectedIndex; } Today = CheckBoxToday.IsChecked.Value; ViewAll = CheckBoxViewAll.IsChecked.Value; })); List <LayData> datalist = new List <LayData>(); CalcParameters cp = new CalcParameters(); foreach (BasicBrokerData book in Bookmakers) { if (book.InUse || ViewAll) { cp.bookielimit += "|" + book.Name + "|"; } } if (cp.bookielimit == null) { System.Windows.Forms.MessageBox.Show("Select Bookies !!"); return; } cp.limit = FootballHedge.Properties.Settings.Default.plLimit; cp.preferedbookie = ComboboxActiveBookies.Items[index].ToString(); cp.today = Today; CalcHedge(ref datalist, cp); if (datalist.Count == 0) { return; } datalist.Sort(); datalist.Reverse(); string[] d; StringBuilder bufstr = new StringBuilder(); foreach (LayData item in datalist) { bufstr.Clear(); ListViewHedgeData lview = new ListViewHedgeData(); lview.Match = item.Match; lview.Team = item.Selection; lview.Back = item.Back.ToString(); lview.Lay = item.Lay.ToString(); lview.PL = item.Profit.ToString(); lview.Size = item.Size.ToString(); lview.FullLeague = item.League; d = item.League.Split(' '); foreach (string str in d) { bufstr.Append(str.Substring(0, 1)); } lview.League = bufstr.ToString(); lview.Bookie = item.Bookie; lview.Time = item.Time; lview.LastUpdate = item.LastUpdate; Dispatcher.Invoke((Action)(() => LWHedge.Items.Add(lview))); } Dispatcher.Invoke((Action)(() => LWHedge.ScrollIntoView(LWHedge.Items[0]))); }); }