bool ProcessX() { BaseChannel_.actionType = "ProcessX"; 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 ProcessX BaseChannel_.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 ProcessX 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 ProcessX Web_DownLoadExcel 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 사용처리를 해야 할것이 있는지 체크하자. if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.EX_CHECK_USE, Worker_); bResult = BaseChannel_.CheckNeedUseWeb(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error ProcessX ExcelParsing 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 웹에서 사용처리하자. if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.CH_PROCESS, Worker_); bResult = BaseChannel_.Web_Use(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error ProcessX CheckNeedUseWeb 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 오픈 마켓은 바로 UR,AR 은 그냥 A 혹은 U 로 변경한다. if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.CH_PROCESS, Worker_); bResult = BaseChannel_.OpenMarketChangeState(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error ProcessX Web_Use 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } // 사용 처리를 완료하여 상태가 변경된것은 Update 한다. if (bResult == true) { ProcessStateManager.Instance.ChangeStateAndReport(CRAWLER_STATE.DB_PROCESS, Worker_); bResult = BaseChannel_.DB_UpdateData(); } else { ProcessStateManager.Instance.LastErrorMessage_ = "Error ProcessX OpenMarketChangeState 실패"; NewLogManager2.Instance.Log(ProcessStateManager.Instance.LastErrorMessage_); } return(bResult); }