示例#1
0
        public void LoadFolder(Action <string> VeriTabaniWriter = null)
        {
            DirectoryInfo directory = new DirectoryInfo(LeagueDir);

            FileInfo[] fileInfos = directory.GetFiles();
            //klasör altındaki dosyaları fileInfos dizisine ekledi

            DAL        dal = new DAL();
            List <int> originalMatchIDs = dal.GetOriginalMatchIDs();
            List <int> originalPlayerStatisticsMatchIDs = dal.GetOriginalPlayerStatisticsMatchIDs();
            List <int> originalTeamStatisticsMatchIDs   = dal.GetOriginalTeamStatisticsMatchIDs();

            //veritabanında kayıtlı olanları originalMatchIDs listesine aldı

            if (fileInfos.Length > 0)
            {
                Console.WriteLine(LeagueName + ": yükleniyor...");

                foreach (FileInfo file in fileInfos)
                {
                    if (file.Length < Globe.IncorrectFileSize)
                    {
                        continue;
                    }
                    //dosya uzunluğu 5 Mb altındaysa atla

                    string fileName = Path.GetFileNameWithoutExtension(file.FullName);
                    //string fileName = "865781";
                    if (fileName.Contains("_Teams"))
                    {
                        continue;
                    }

                    if (fileName.Equals("LiveScores") || originalMatchIDs.Contains(int.Parse(fileName)) || originalPlayerStatisticsMatchIDs.Contains(int.Parse(fileName)) || originalTeamStatisticsMatchIDs.Contains(int.Parse(fileName)))
                    {
                        continue;
                    }

                    //Uzantısız Dosya adı Livescores olan ya da veri tabanında kayıtlı olan dosya isimleri varsa atla

                    try
                    {
                        HtmlContent = Globe.LoadFile(file.FullName);
                        //string htmlContent = Globe.LoadFile("C:\\WhoScored-master\\htmlContent\\Italy-Serie-A\\865781.txt");
                    }
                    catch (Exception ex)
                    {
                        Globe.WriteLog(fileName + " : Kaynak çekilemeyen dosya!!! " + ex);
                    }

                    //dosya kaynağını htmlContent'e ata
                    ContentFilter filter = new ContentFilter();

                    try
                    {
                        matchInfo = filter.MacBilgisiOlusturYontem1(int.Parse(fileName), LeagueName, HtmlContent);
                        if (matchInfo.awayid == 0)
                        {
                            matchInfo = filter.MacBilgisiOlusturYontem2(int.Parse(fileName), LeagueName, HtmlContent);
                        }
                    }
                    catch (Exception)
                    {
                        Globe.WriteLog("Hatalı kaynak kodu!!!");
                    }
                    //MatchInfo matchInfo = filter.GetMatchInfo(int.Parse(fileName), LeagueName, HtmlContent);
                    //maç idsi,lig adı ve kaynağa göre maç bilgisini çek.

                    try
                    {
                        InsertData(matchInfo);
                        VeriTabaniWriter?.Invoke(LeagueName + " - " + int.Parse(fileName));
                    }
                    catch (Exception ex)
                    {
                        Globe.WriteLog("Veritabanına yazılamayan maç. Kaynağı kontrol et: " + file.FullName + " " + ex.Message);
                    }
                }
            }
        }