예제 #1
0
        internal void ParseData(FonbetResponse data)
        {
            if (_bd == null)
            {
                _bd = new UnicDataDecorator(UnicData.Load("bd.data"));
                UnicDataDecorator.UpdateBase += UnicDataDecorator_UpdateBase;
            }

            lock (_lockObj)
            {
                if (IsFirstLoad)
                {
                    LoadLink(data);
                }
                else
                {
                    if (FromVersion != data.FromVersion)
                    {
                        IsFirstLoad = true;
                        throw new ArgumentException($"Пришел не тот пакет обновления {FromVersion} != {data.FromVersion}");
                    }
                    UpdateLink(data);
                }
                _line.LastUpdate = DateTime.Now;
            }

            FromVersion = data.PacketVersion;
        }
예제 #2
0
        private static void Joining()
        {
            OpenFileDialog dlg = new OpenFileDialog
            {
                Title       = "Укажите базу для добавления",
                Multiselect = false,
                Filter      = "Файл базы данных(*.data)|*.data"
            };

            dlg.ShowDialog();

            if (string.IsNullOrEmpty(dlg.FileName))
            {
                return;
            }

            List <UnicData> bd       = UnicData.Load("bd_new.data");
            List <UnicData> newBdOne = UnicData.Load(dlg.FileName);
            List <UnicData> newBdTwo = UnicData.Load("bd.data");

            List <UnicData> x1 = newBdOne.Except(bd, new Comp()).ToList();
            List <UnicData> x2 = newBdTwo.Except(bd, new Comp()).ToList();


            int last = bd.Count;

            foreach (UnicData key in x1)
            {
                List <UnicData> dt = newBdOne.Where(x => x.Id == key.Id).ToList();

                int mainId = bd.Select(x => x.Id).Max();
                mainId++;
                foreach (UnicData mt in dt)
                {
                    UnicData tmp = mt.Clone();
                    tmp.Id = mainId;
                    bd.Add(tmp);
                }
            }


            foreach (UnicData key in x2)
            {
                List <UnicData> dt     = newBdTwo.Where(x => x.Id == key.Id).ToList();
                int             mainId = bd.Select(x => x.Id).Max();
                mainId++;
                foreach (UnicData mt in dt)
                {
                    UnicData tmp = mt.Clone();
                    tmp.Id = mainId;
                    bd.Add(tmp);
                }
            }

            MessageBox.Show($"Успешно добавленно {bd.Count - last} команд");

            UnicData.Save("bd_new.data", bd);
            UnicData.Save("bd.data", bd);
        }
예제 #3
0
        private void ImportData()
        {
            if (!File.Exists("bd.data"))
            {
                return;
            }

            List <UnicData> db         = UnicData.Load("bd.data");
            List <UnicData> rezultList = new List <UnicData>();
            List <string>   filesData  = new List <string>()
            {
                "Fonbet.data",
                "Marafon.data",
                "Olimp.data",
                "Zenit.data"
            };

            foreach (string fileName in filesData)
            {
                List <SiteRow> data = SiteRow.Load(fileName);
                foreach (SiteRow siteRow in data)
                {
                    UnicData rez = FindData(siteRow.TeamName, db);
                    if (rez != null)
                    {
                        var      team2 = siteRow.Match.Replace(siteRow.TeamName, "").Replace(" - ", "").Trim();
                        UnicData rez2  = FindData(siteRow.TeamName, db);
                        if (rez2 != null)
                        {
                            rezultList.Add(rez);
                        }
                    }
                }
            }

            rezultList = rezultList.OrderBy(x => x.Id).ToList();
            rezultList = ToUnic(rezultList);

            UnicData.Save("bd_Import.data", rezultList);
            Loger.Add($"База для импорта готова. В ней {rezultList.Count} записей");
        }
 public EditBaseViewModel()
 {
     Base    = new ObservableCollection <UnicData>(UnicData.Load("base_new_two.data"));
     Maximum = Base.Select(x => x.Id).Max();
     Base.CollectionChanged += Base_CollectionChanged;
 }
        internal List <LinkData> GetLives()
        {
            var rezult = new List <LinkData>();

            if (_req == null)
            {
                _req = new HttpRequest();
                _req.CharacterSet = Encoding.UTF8;
                _req.UserAgent    =
                    "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.59 Safari/537.36 OPR/41.0.2353.46";
                //if (UsingProxy)
                //    _req.Proxy = ProxyClient.Parse(ProxySingleManager.GetProxy());
            }

            string respone = _req.Get($"{_url}/su/live/popular").ToString();
            var    pr      = new HtmlParser();
            var    doc     = pr.Parse(respone);
            var    lives   = doc.QuerySelectorAll("div.event-info");


            foreach (IElement element in lives)
            {
                var id       = element.Attributes["data-event-treeid"].Value;
                var linkdata = new LinkData();
                linkdata.Id = id;
                try
                {
                    linkdata.Teams = element.Children[2].TextContent.Replace(" @ ", " - ");
                    linkdata.Score = element.Children[element.ChildElementCount - 2].FirstElementChild.TextContent;
                    if (element.Children[element.ChildElementCount - 2].ChildElementCount == 2)
                    {
                        linkdata.TimeData = element.Children[element.ChildElementCount - 2].LastElementChild.TextContent;
                    }
                }
                catch (Exception e)
                {
                    continue;
                }

                rezult.Add(linkdata);
            }


            if (_bd == null)
            {
                _bd = new UnicDataDecorator(UnicData.Load("bd.data"));
                UnicDataDecorator.UpdateBase += UnicDataDecorator_UpdateBase;
            }



            var dt = new List <LinkData>();

            foreach (LinkData linkData in rezult)
            {
                var teams = linkData.Teams.Replace(" - ", "|").Split('|');
                if (teams.Length != 2)
                {
                    continue;
                }
                linkData.Team1Id = _bd.GetNumber(teams[0]);
                if (linkData.Team1Id == -1)
                {
                    continue;
                }
                linkData.Team2Id = _bd.GetNumber(teams[1]);
                if (linkData.Team2Id == -1)
                {
                    dt.Add(linkData);
                }
            }

            Logger.AddLog($"Всего lives: {rezult.Count}. Из них отобранно {dt.Count}", Logger.LogTarget.Marafon);

            return(dt);
        }
        private List <Fork> CheckMain(Bet one, Bet two)
        {
            List <Fork> rezult = new List <Fork>();

            if (one.Bookmaker == two.Bookmaker)
            {
                return(rezult);
            }


            if (_bd == null)
            {
                _bd = new UnicDataDecorator(UnicData.Load("bd.data"));
                UnicDataDecorator.UpdateBase += UnicDataDecorator_UpdateBase;
            }

            //if (one.Team1Id == -2)
            //    one.Team1Id = _bd.GetNumber(one.Team1);
            if (one.Team1Id == -1)
            {
                return(rezult);
            }

            //if (one.Team2Id == -2)
            //    one.Team2Id = _bd.GetNumber(one.Team2);
            if (one.Team2Id == -1)
            {
                return(rezult);
            }

            //if (two.Team1Id == -2)
            //    two.Team1Id = _bd.GetNumber(two.Team1);
            if (two.Team1Id == -1)
            {
                return(rezult);
            }

            //if (two.Team2Id == -2)
            //    two.Team2Id = _bd.GetNumber(two.Team2);
            if (two.Team2Id == -1)
            {
                return(rezult);
            }

            if (one.Team1Id != two.Team1Id)
            {
                return(rezult);
            }
            if (one.Team2Id != two.Team2Id)
            {
                return(rezult);
            }

            _betCheck++;
            rezult.AddRange(Check(one, two));
            foreach (var key in one.Parts)
            {
                if (two.Parts.ContainsKey(key.Key))
                {
                    rezult.AddRange(Check(one.Parts[key.Key], two.Parts[key.Key]));
                }
            }
            return(rezult);
        }
        private void LoadData()
        {
            try
            {
                FonbetData    = SiteRow.Load("Fonbet.data");
                OlimpData     = SiteRow.Load("Olimp.data");
                MarafonData   = SiteRow.Load("Marafon.data");
                ZenitData     = SiteRow.Load("Zenit.data");
                PariMatchData = SiteRow.Load("PariMatch.data");
                Base          = new ObservableCollection <UnicData>(UnicData.Load("bd.data").OrderBy(x => x.Id));
            }
            catch
            {
                Base = new ObservableCollection <UnicData>();
            }

            Base.CollectionChanged += Base_CollectionChanged;

            if (Base.Count != 0)
            {
                foreach (UnicData key in Base)
                {
                    foreach (SiteRow t in FonbetData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }

                    foreach (SiteRow t in OlimpData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }

                    foreach (SiteRow t in MarafonData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }

                    foreach (SiteRow t in ZenitData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }

                    foreach (SiteRow t in PariMatchData)
                    {
                        if (t.TeamName == key.Value)
                        {
                            t.IsUsed = true;
                        }
                    }
                }
            }

            Fonbet    = new ObservableCollection <SiteRow>(FonbetData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
            Olimp     = new ObservableCollection <SiteRow>(OlimpData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
            Marafon   = new ObservableCollection <SiteRow>(MarafonData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
            Zenit     = new ObservableCollection <SiteRow>(ZenitData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
            PariMatch = new ObservableCollection <SiteRow>(PariMatchData.OrderBy(x => x.Sport).ThenBy(x => x.TimeStart));
        }