Пример #1
0
        // 플레이어 얻어오기
        public void SelectPlayer()
        {
            Crawler.Manager mgr = new Crawler.Manager();
            try
            {
                Util.DataBaseManager dbMgr = new Util.DataBaseManager();
                dbMgr.DataContext.ExecuteCommand("TRUNCATE TABLE PLAYER", new Object[] { });

                var player_Ws = dbMgr.SelectAll <Player_W>();

                List <Player> players = new List <Player>();
                for (Int32 i = 0; i < player_Ws.Count();)
                {
                    foreach (var player_W in player_Ws)
                    {
                        var player = mgr.GetPlayer(player_W);
                        players.Add(player);
                    }
                }
                dbMgr.Save <Player>(players);
            }
            finally
            {
                mgr.Dispose();
            }
        }
Пример #2
0
        // BoxScore 불러오기
        public void SelectBoxScore_W()
        {
            Crawler.Manager mgr = new Crawler.Manager();
            try
            {
                Util.DataBaseManager dbMgr = new Util.DataBaseManager();
                var schedules = from schedule in dbMgr.SelectAll <Schedule>()
                                join boxScore in dbMgr.SelectAll <BoxScore_W>()
                                on schedule.GameId equals boxScore.GameId into t
                                from subBoxScore in t.DefaultIfEmpty()
                                where schedule.LeagueId == 1 && schedule.SeriesId == 0 &&
                                schedule.Href != null && subBoxScore.AwayHitter == null
                                select schedule;

                schedules = from schedule in schedules
                            where schedule.Year >= 2013
                            select schedule;

                foreach (var schedule in schedules)
                {
                    List <BoxScore_W> boxScore_Ws = new List <BoxScore_W>();
                    var situation_W = GetBoxScore_W(mgr, schedule, 5);
                    boxScore_Ws.Add(situation_W);
                    dbMgr.Save <BoxScore_W>(boxScore_Ws);
                }
            }
            finally
            {
                mgr.Dispose();
            }
        }
Пример #3
0
 // 테스트함수
 public void RunTest()
 {
     using (var crawlerMgr = new Crawler.Manager())
     {
         var temp = crawlerMgr.GetPlayer_W("삼성");
     }
 }
Пример #4
0
        // PlayerW  작업
        private void RunPlayer(List <Player_W> items)
        {
            List <DbItemBase> player_Ws = new List <DbItemBase>();
            DatabaseManager   dbMgr     = new DatabaseManager();

            using (var crawlerMgr = new Crawler.Manager())
            {
                foreach (var item in items)
                {
                    player_Ws.Add(crawlerMgr.GetPlayer(item));
                }
            }
            dbMgr.Save(player_Ws);
        }
Пример #5
0
        // PlayerW  작업
        private void RunSchedule(List <DateTime> items)
        {
            List <DbItemBase> schedules = new List <DbItemBase>();
            DatabaseManager   dbMgr     = new DatabaseManager();

            using (var crawlerMgr = new Crawler.Manager())
            {
                foreach (var item in items)
                {
                    var tSchedules = crawlerMgr.GetSchedule(item.Year, item.Month);
                    schedules = schedules.Concat(tSchedules).ToList();
                }
            }
            dbMgr.Save(schedules);
        }
Пример #6
0
        // PlayerW  작업
        private void RunPlayerW(List <String> teams)
        {
            List <DbItemBase> player_Ws = new List <DbItemBase>();
            DatabaseManager   dbMgr     = new DatabaseManager();

            using (var crawlerMgr = new Crawler.Manager())
            {
                foreach (String team in teams)
                {
                    var items = crawlerMgr.GetPlayer_W(team);
                    player_Ws = player_Ws.Concat(items).ToList();
                }
            }
            dbMgr.Save(player_Ws);
        }
Пример #7
0
 private BoxScore_W GetBoxScore_W(Crawler.Manager mgr, Schedule schedule, Int32 lastCount)
 {
     if (lastCount == 0)
     {
         throw new Exception(String.Format("경기상황 얻어오기 실패, 게임아이디 {0}", schedule.GameId));
     }
     try
     {
         var boxScore_W = mgr.GetBoxScore_W(schedule);
         return(boxScore_W);
     }
     catch
     {
         return(GetBoxScore_W(mgr, schedule, lastCount - 1));
     }
 }
Пример #8
0
        // PlayerW  작업
        private void RunBoxScore(List <Schedule> items)
        {
            List <DbItemBase> boxScores = new List <DbItemBase>();
            DatabaseManager   dbMgr     = new DatabaseManager();

            using (var crawlerMgr = new Crawler.Manager())
            {
                foreach (var item in items)
                {
                    var boxScore = crawlerMgr.GetBoxScore(item);
                    if (boxScore != null)
                    {
                        boxScores.Add(boxScore);
                    }
                }
            }
            dbMgr.Save(boxScores);
        }
Пример #9
0
        // PlayerW  작업
        private void RunSchedule(List <Schedule> items)
        {
            List <DbItemBase> situations = new List <DbItemBase>();
            DatabaseManager   dbMgr      = new DatabaseManager();

            using (var crawlerMgr = new Crawler.Manager())
            {
                foreach (var item in items)
                {
                    var situation = crawlerMgr.GetSituation(item);
                    if (situation != null)
                    {
                        situations.Add(situation);
                    }
                }
            }
            dbMgr.Save(situations);
        }
Пример #10
0
        // 플레이어 리스트 얻어오기
        public void SelectPlayer_W()
        {
            Crawler.Manager mgr = new Crawler.Manager();
            try
            {
                Util.DataBaseManager dbMgr = new Util.DataBaseManager();

                dbMgr.DataContext.ExecuteCommand("TRUNCATE TABLE PLAYER_W", new Object[] { });

                foreach (String team in Util.Util.Teams)
                {
                    var players = mgr.GetPlayer_W(team);
                    dbMgr.Save<Player_W>(players);
                }
            }
            finally
            {
                mgr.Dispose();
            }
        }
Пример #11
0
        // 플레이어 리스트 얻어오기
        public void SelectPlayer_W()
        {
            Crawler.Manager mgr = new Crawler.Manager();
            try
            {
                Util.DataBaseManager dbMgr = new Util.DataBaseManager();

                dbMgr.DataContext.ExecuteCommand("TRUNCATE TABLE PLAYER_W", new Object[] { });

                foreach (String team in Util.Util.Teams)
                {
                    var players = mgr.GetPlayer_W(team);
                    dbMgr.Save <Player_W>(players);
                }
            }
            finally
            {
                mgr.Dispose();
            }
        }
Пример #12
0
        // 플레이어 얻어오기
        public void SelectPlayer()
        {
            Crawler.Manager mgr = new Crawler.Manager();
            try
            {
                Util.DataBaseManager dbMgr = new Util.DataBaseManager();
                dbMgr.DataContext.ExecuteCommand("TRUNCATE TABLE PLAYER", new Object[] { });

                var player_Ws = dbMgr.SelectAll<Player_W>();

                List<Player> players = new List<Player>();
                for(Int32 i = 0; i < player_Ws.Count(); )
                foreach (var player_W in player_Ws)
                {
                    var player = mgr.GetPlayer(player_W);
                    players.Add(player);
                }
                dbMgr.Save<Player>(players);
            }
            finally
            {
                mgr.Dispose();
            }
        }
Пример #13
0
        // 일정불러오기 
        public void SelectSchedule()
        {
            Crawler.Manager mgr = new Crawler.Manager();
            Util.DataBaseManager dbMgr = new Util.DataBaseManager();

            // 일정불러오기 
            var allSchedule = dbMgr.SelectAll<Schedule>();
            Int32 year = 2010;
            Int32 month = 3;

            if(allSchedule.Count() > 0)
            { 
                 year = (from schedule in allSchedule select schedule.Year).Max();
                 month = (from schedule in allSchedule where schedule.Year == year select schedule.Month).Max();
            }
            DateTime startDate = new DateTime(year, month, 1);
            DateTime endDate = DateTime.Now;

            try
            {
                Int32 errorCount = 0;
                while (startDate <= endDate)
                {
                    try
                    {
                        var data = mgr.GetSchedule(startDate.Year, startDate.Month);

                        var scheduleTable = dbMgr.DataContext.GetTable<Schedule>();
                        var delSchedule = from schedule in allSchedule
                                          where schedule.Year == startDate.Year && schedule.Month == startDate.Month
                                          select schedule;

                        foreach (var schedule in delSchedule)
                        {
                            scheduleTable.DeleteOnSubmit(schedule);
                        }
                        dbMgr.DataContext.SubmitChanges();

                        dbMgr.Save(data);
                        startDate = startDate.AddMonths(1);
                        errorCount = 0;
                    }
                    catch (OpenQA.Selenium.StaleElementReferenceException exception)
                    {
                        if (errorCount < 10)
                        {
                            errorCount++;
                            continue;
                        }
                        else
                        {
                            throw exception;
                        }
                    }
                }
            }
            finally
            {
                mgr.Dispose();
            }
        }
Пример #14
0
        // BoxScore 불러오기
        public void SelectBoxScore_W()
        {
            Crawler.Manager mgr = new Crawler.Manager();
            try
            {
                Util.DataBaseManager dbMgr = new Util.DataBaseManager();
                var schedules = from schedule in dbMgr.SelectAll<Schedule>()
                                join boxScore in dbMgr.SelectAll<BoxScore_W>()
                                on schedule.GameId equals boxScore.GameId into t
                                from subBoxScore in t.DefaultIfEmpty()
                                where schedule.LeagueId == 1 && schedule.SeriesId == 0
                                && schedule.Href != null && subBoxScore.AwayHitter == null
                                select schedule;

                schedules = from schedule in schedules
                            where schedule.Year >= 2013
                            select schedule;

                foreach (var schedule in schedules)
                {
                    List<BoxScore_W> boxScore_Ws = new List<BoxScore_W>();
                    var situation_W = GetBoxScore_W(mgr, schedule, 5);
                    boxScore_Ws.Add(situation_W);
                    dbMgr.Save<BoxScore_W>(boxScore_Ws);
                }
            }
            finally
            {
                mgr.Dispose();
            }
        }
Пример #15
0
        // 일정불러오기
        public void SelectSchedule()
        {
            Crawler.Manager      mgr   = new Crawler.Manager();
            Util.DataBaseManager dbMgr = new Util.DataBaseManager();

            // 일정불러오기
            var   allSchedule = dbMgr.SelectAll <Schedule>();
            Int32 year        = 2010;
            Int32 month       = 3;

            if (allSchedule.Count() > 0)
            {
                year  = (from schedule in allSchedule select schedule.Year).Max();
                month = (from schedule in allSchedule where schedule.Year == year select schedule.Month).Max();
            }
            DateTime startDate = new DateTime(year, month, 1);
            DateTime endDate   = DateTime.Now;

            try
            {
                Int32 errorCount = 0;
                while (startDate <= endDate)
                {
                    try
                    {
                        var data = mgr.GetSchedule(startDate.Year, startDate.Month);

                        var scheduleTable = dbMgr.DataContext.GetTable <Schedule>();
                        var delSchedule   = from schedule in allSchedule
                                            where schedule.Year == startDate.Year && schedule.Month == startDate.Month
                                            select schedule;

                        foreach (var schedule in delSchedule)
                        {
                            scheduleTable.DeleteOnSubmit(schedule);
                        }
                        dbMgr.DataContext.SubmitChanges();

                        dbMgr.Save(data);
                        startDate  = startDate.AddMonths(1);
                        errorCount = 0;
                    }
                    catch (OpenQA.Selenium.StaleElementReferenceException exception)
                    {
                        if (errorCount < 10)
                        {
                            errorCount++;
                            continue;
                        }
                        else
                        {
                            throw exception;
                        }
                    }
                }
            }
            finally
            {
                mgr.Dispose();
            }
        }