public void UpHand(List <FData> FootData, List <ParsedDataFromPage> PD, int id)
        {
            double MLimit = FootballHedge.Properties.Settings.Default.MailplLimit;

            foreach (ParsedDataFromPage obj in PD)
            {
                if (obj.League != "0.5")
                {
                    continue;
                }
                for (int j = FootData.Count - 1; j >= 0; j--)
                {
                    FData item = FootData[j];
                    if (!item.XKoef.ContainsKey(id))
                    {
                        item.AddNewItenToDictionary(id);
                    }
                    if (item.Match.Contains(obj.Team1) && item.Match.Contains(obj.Team2))
                    {
                        foreach (KeyValuePair <int, X> it in FootData[j].XKoef)
                        {
                            if (MainF.Bookmakers[it.Key].Type != BrokerType.BACK)
                            {
                                continue;
                            }

                            if (it.Value.Koef[1] < it.Value.Koef[2] && it.Value.Koef[1] >= MainF.Bookmakers[it.Key].Limit && it.Value.Koef[2] < obj.X[2])
                            {
                                double p1 = CalcHandicapPL(it.Value.Koef[1], obj.X[2]);
                                if (p1 >= 1 && MainF.Bookmakers[id].InUse)
                                {
                                    changecolor = true;
                                }
                                if (p1 >= MLimit && p1 >= MainF.Bookmakers[it.Key].PLlimit)
                                {
                                    PrepareMessage(item.Team1 + "-" + item.Team2, item.Team1, obj.X[2], it.Value.Koef[1], MainF.Bookmakers[it.Key].Name, obj.time, item.time);
                                }
                            }

                            if (it.Value.Koef[1] > it.Value.Koef[2] && it.Value.Koef[2] >= MainF.Bookmakers[it.Key].Limit && it.Value.Koef[1] < obj.X[1])
                            {
                                double p2 = CalcHandicapPL(it.Value.Koef[2], obj.X[1]);
                                if (p2 >= 1 && MainF.Bookmakers[id].InUse)
                                {
                                    changecolor = true;
                                }
                                if (p2 >= MLimit && p2 >= MainF.Bookmakers[it.Key].PLlimit)
                                {
                                    PrepareMessage(item.Team1 + "-" + item.Team2, item.Team1, obj.X[1], it.Value.Koef[2], MainF.Bookmakers[it.Key].Name + " handicap", obj.time, item.time);
                                }
                            }
                        }

                        //for (int q = 0; q < MainF.Bookmakers.Count; q++)
                        //{
                        //    if(MainF.Bookmakers[q].Type != BrokerType.BACK) continue;


                        //    if(item.Koef[q,1] == 0) continue;

                        //    if (item.Koef[q, 1] >= MainF.Bookmakers[q].Limit && item.Koef[id, 2] < obj.X[2])
                        //    {
                        //        double p1 = CalcHandicapPL(item.Koef[q,1], obj.X[2]);
                        //        if (p1 >= 1 && MainF.Bookmakers[id].InUse) changecolor = true;
                        //        if (p1 >= MLimit) PrepareMessage(item.Team1 + "-" + item.Team2, item.Team1, obj.X[2], item.Koef[q, 1], MainF.Bookmakers[q].Name, obj.time);
                        //    }

                        //    if (item.Koef[q, 2] >= MainF.Bookmakers[q].Limit && item.Koef[id, 1] < obj.X[1])
                        //    {
                        //        double p2 = CalcHandicapPL(item.Koef[q, 2], obj.X[1]);
                        //        if (p2 >= 1 && MainF.Bookmakers[id].InUse) changecolor = true;
                        //        if (p2 >= MLimit) PrepareMessage(item.Team1 + "-" + item.Team2, item.Team1, obj.X[1], item.Koef[q, 2], MainF.Bookmakers[q].Name+" handicap", obj.time);
                        //    }

                        //}
                        //item.Koef[id, 1] = obj.X[1];
                        //item.Koef[id, 2] = obj.X[2];
                        //item.LastUpdate[id] = DateTime.Now.ToString("HH:mm");
                        item.XKoef[id].Koef[1]    = obj.X[1];
                        item.XKoef[id].Koef[2]    = obj.X[2];
                        item.XKoef[id].LastUpdate = DateTime.Now.ToString("HH:mm");
                    }
                }
            }
        }
        public void Load(List <FData> FootData, List <BasicBrokerData> Bookmakers)
        {
            if (File.Exists(pathAllMatches))
            {
                XmlDocument xd = new XmlDocument();
                xd.Load(pathAllMatches);
                FootData.Clear();
                foreach (XmlNode item in xd.SelectNodes("Data/Match"))
                {
                    FData f = new FData();



                    if (item.SelectSingleNode(".//Team1") == null)
                    {
                        continue;
                    }
                    f.Team1 = item.SelectSingleNode(".//Team1").InnerText;

                    if (item.SelectSingleNode(".//Team2") == null)
                    {
                        continue;
                    }
                    f.Team2 = item.SelectSingleNode(".//Team2").InnerText;


                    if (item.SelectSingleNode(".//Match") == null)
                    {
                        continue;
                    }
                    f.Match = item.SelectSingleNode(".//Match").InnerText;

                    if (item.SelectSingleNode(".//League") == null)
                    {
                        continue;
                    }
                    f.League = item.SelectSingleNode(".//League").InnerText;


                    if (item.SelectSingleNode(".//Time") != null)
                    {
                        string time = time = item.SelectSingleNode(".//Time").InnerText;
                        try
                        {
                            DateTime buftime;
                            if (TryToParse.ParseDateTime(time, out buftime))
                            {
                                f.time = buftime;
                            }
                        }
                        catch (FormatException)
                        {
                            f.time = DateTime.Today;
                        }
                    }

                    for (int i = 0; i < Bookmakers.Count; i++)
                    {
                        BasicBrokerData data = Bookmakers[i];
                        if (item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/X0") == null)
                        {
                            continue;
                        }
                        f.AddNewItenToDictionary(i);
                        if (item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/LastUpdate") != null)
                        {
                            f.XKoef[i].LastUpdate = item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/LastUpdate").InnerText;
                        }

                        double value = 1;
                        var    x     = item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/X0");

                        if (x != null && TryToParse.ParseDouble(x.InnerText, out value))
                        {
                        }
                        f.XKoef[i].Koef[0] = value;

                        value = 1;
                        x     = item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/X1");
                        if (x != null && TryToParse.ParseDouble(x.InnerText, out value))
                        {
                        }
                        f.XKoef[i].Koef[1] = value;

                        value = 1;
                        x     = item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/X2");
                        if (x != null && TryToParse.ParseDouble(x.InnerText, out value))
                        {
                        }
                        f.XKoef[i].Koef[2] = value;

                        if (Bookmakers[i].Type == BrokerType.LAY)
                        {
                            value = 1;
                            x     = item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/LX0");

                            if (x != null && TryToParse.ParseDouble(x.InnerText, out value))
                            {
                            }
                            f.Lay[0] = value;

                            value = 1;
                            x     = item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/LX1");
                            if (x != null && TryToParse.ParseDouble(x.InnerText, out value))
                            {
                            }
                            f.Lay[1] = value;

                            value = 1;
                            x     = item.SelectSingleNode(".//BookieOdds/B_" + data.Name + "/LX2");
                            if (x != null && TryToParse.ParseDouble(x.InnerText, out value))
                            {
                            }
                            f.Lay[2] = value;
                        }
                    }

                    FootData.Add(f);
                }
            }
        }
        public void UpBack(List <FData> FootData, List <ParsedDataFromPage> PD, int id)
        {
            double MLimit = FootballHedge.Properties.Settings.Default.MailplLimit;

            foreach (ParsedDataFromPage obj in PD)
            {
                for (int j = FootData.Count - 1; j >= 0; j--)
                {
                    FData item = FootData[j];

                    int del = item.Match.IndexOf("|");
                    if (del == -1)
                    {
                        continue;
                    }

                    if (item.Match.IndexOf(obj.Team1, 0, del) == -1)
                    {
                        continue;
                    }

                    if (item.Match.IndexOf(obj.Team2, del) == -1)
                    {
                        continue;
                    }

                    if (!item.XKoef.ContainsKey(id))
                    {
                        item.AddNewItenToDictionary(id);
                    }

                    for (int q = 0; q < 3; q++)
                    {
                        if (item.XKoef[id].Koef[q] >= MainF.Bookmakers[id].Limit && item.XKoef[id].Koef[q] < obj.X[q])
                        {
                            double p0 = CalcLayPL(obj.X[q], item.Lay[q]);
                            if (p0 >= 1 && MainF.Bookmakers[id].InUse)
                            {
                                WriteBreakToFile.LogSave("Back " + MainF.Bookmakers[id].Name + " | " + item.Team1 + "-" + item.Team2 + "  [" + q.ToString() + "] " + item.XKoef[id].Koef[q].ToString() + " -> " + obj.X[q].ToString());
                                changecolor = true;
                            }
                            if (p0 >= MLimit && p0 >= MainF.Bookmakers[id].PLlimit && MainF.Bookmakers[id].EMailing)
                            {
                                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;
                                }
                                PrepareMessage(item.Team1 + "-" + item.Team2, selection.ToString(), obj.X[q], item.Lay[q], MainF.Bookmakers[id].Name, obj.time, item.time);
                                WriteBreakToFile.LogSave("EMAIL Back " + MainF.Bookmakers[id].Name + " | " + item.Team1 + "-" + item.Team2 + "  [" + q.ToString() + "] " + item.XKoef[id].Koef[q].ToString() + " -> " + obj.X[q].ToString());
                            }
                        }
                    }

                    item.XKoef[id].Koef[0]    = obj.X[0];
                    item.XKoef[id].Koef[1]    = obj.X[1];
                    item.XKoef[id].Koef[2]    = obj.X[2];
                    item.XKoef[id].LastUpdate = DateTime.Now.ToString("HH:mm");
                }
            }
        }