bool Check() { BaseChannel_.actionType = "Check"; bool bResult = true; ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.DB_CRAWLER_INFO, Worker_); bResult = BaseChannel_.DB_GetInfos(); // DB에서 크롤러 정보 로드 // 채널에 로그인 if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.CH_LOGIN, Worker_); bResult = BaseChannel_.Web_Login(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check DB_GetInfos 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 상품 판매 정보 다운로드 해서 엑셀에 저장 if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.CH_DOWN, Worker_); bResult = BaseChannel_.Web_DownLoadExcel(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check Web_Login 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 엑셀 데이터 로드해서 리스트에 넣기 if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.EX_PARSING, Worker_); bResult = BaseChannel_.ExcelParsing(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check Web_DownLoadExcel 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // DB 값 수정해야 하는것 체크 if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.EX_CHECK_FIXUP, Worker_); bResult = BaseChannel_.CheckNeedFixUp(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check ExcelParsing 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 취소 리스트 받기 if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.CH_DOWN_CANCEL, Worker_); bResult = BaseChannel_.Web_DownLoad_CancelList(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check CheckNeedFixUp 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 취소 엑셀 파싱 if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.EX_PARSING_CANCEL, Worker_); bResult = BaseChannel_.ExcelParsing_Cancel(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check Web_DownLoad_CancelList 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 취소 정보 취함 if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.EX_CHECK_CANCEL, Worker_); bResult = BaseChannel_.CheckIsCancel(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check ExcelParsing_Cancel 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // DB 값이 잘못되어 있는 것을 원래대로 돌린다. if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.DB_PROCESS, Worker_); bResult = BaseChannel_.DB_UpdateData_FixUp(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check CheckIsCancel 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 엑셀에서 취소 된것은 DB의 값을 바꿔주자. if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.CH_PROCESS, Worker_); bResult = BaseChannel_.DB_UpdateData_Cancel(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error bool Check DB_UpdateData_FixUp 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } return(bResult); }