private void TaskDetailsForm_Load(object sender, EventArgs e) { PopulateExpertCb(); PopulatePriorityCb(); PopulateStatusCb(); TaskNameTb.Text = currentTask.TASK_NAME; ProjectNameTb.Text = currentTask.PROJECT.PROJECT_NAME; DescriptionRtb.Text = currentTask.TASK_DESCRIPTION; ResultRtb.Text = currentTask.TAS_DELIVERABLES; ExpertsCb.SelectedValue = currentTask.EXPRET_ID; PriorityCb.SelectedValue = currentTask.TASK_PRIORITY; StatusCb.SelectedValue = currentTask.TASK_STATUS; // NOT FINISH // ComentRtb.Text = ""; // TaskExpertCb.SelectedValue = currentTask.EXPRET_ID; // StatusDdl.SelectedItem = currentProject.PROJECT_STATUS1.PSTATUS_NAME; TaskHoursTb.Text = currentTask.TASK_HOURS.ToString(); StatusCb.Text = currentTask.TASK_STATUS1.STATUS_NAME; TaskStartDatePicker.Value = currentTask.TASK_BEGIN.Date; TaskEndDatePicker.Value = currentTask.TASK_END.Date; for (int i = 1; i <= currentTask.TASK_READY; i++) { TaskProgressBar.PerformStep(); } }
private void StepBtn_Click(object sender, EventArgs e) { if (currentTask.TASK_READY < 10) { TaskProgressBar.PerformStep(); currentTask.TASK_READY++; context.SaveChanges(); } }
/// <inheritdoc/> public override void RunTask(ITask task) { #region Sanity checks if (task == null) { throw new ArgumentNullException(nameof(task)); } #endregion if (Verbosity <= Verbosity.Batch) { task.Run(CancellationToken, CredentialProvider); } else { Log.Debug("Task: " + task.Name); Console.Error.WriteLine(task.Name + @"..."); using (var progressBar = new TaskProgressBar()) task.Run(CancellationToken, CredentialProvider, progressBar); } }
private void Searcher_SearchFinished(object sender, SearchFinishedEventArgs e) { Dispatcher.Invoke(() => { TaskProgressBar itm = dict[sender as ISearcher]; itm.SetValue(value: itm.Maximum, message: "검색이 완료되었습니다."); itm.TaskFinished = true; TaskLogManager.AddLog("검색이 완료되었습니다.", TaskLogType.Searching); switch (e.ServiceKind) { case ServiceKind.GoogleCSE: SettingManager.GoogleCredentials.Item2 = VerifyType.Verified; SettingManager.GoogleCredentials.Item4 = VerifyType.Verified; break; case ServiceKind.Youtube: SettingManager.YoutubeCredentials.Item2 = VerifyType.Verified; break; } }); }
public void SearchGoogle() { // 동일한 서비스는 끝나기 전까지 실행이 불가능함. if (googleSearching) { AddLog("이미 Google CSE 서비스에서 검색을 실행중입니다.", TaskLogType.Failed); return; } // 날짜 유효성 미리 검사 if (SettingManager.GoogleCSESearchOption.UseDateSearch) { if (!SettingManager.GoogleCSESearchOption.DateRange.Vaild) { AddLog("구글 검색의 날짜 설정이 잘못되었습니다.", TaskLogType.Failed); return; } } googleSearching = true; _detailsOption.GoogleEnableChange(false); _vertManager.ChangeEditable(false, ServiceKind.GoogleCSE); lvGoogle.Items.Clear(); Thread thr = new Thread(() => { var sw = new Stopwatch(); var googleCSESearcher = new GoogleCSESearcher(); bool isCanceled = false; SearchResult info = SearchResult.Fail_APIError; GoogleCSESearchOption option = null; googleCSESearcher.SearchProgressChanged += Searcher_SearchProgressChanged; googleCSESearcher.SearchFinished += Searcher_SearchFinished; googleCSESearcher.ChangeInfoMessage += Searcher_ChangeInfoMessage; googleCSESearcher.SearchItemFound += Searcher_SearchItemFound; Dispatcher.Invoke(() => { sw.Start(); AddLog("Google CSE 검색 엔진을 초기화중입니다.", TaskLogType.SearchReady); option = SettingManager.GoogleCSESearchOption; option.Query = tbQuery.Text; var tb = new TaskProgressBar(); tb.SetValue(title: "Google CSE 검색", message: "검색이 진행중입니다.", maximum: 1); lvTask.Items.Insert(0, tb); dict[googleCSESearcher] = tb; if (option.OutputServices == OutputFormat.None) { tb.SetValue(message: "결과를 내보낼 위치가 없습니다.", maximum: 1); AddLog("검색을 내보낼 위치가 없습니다.", TaskLogType.Failed); tb.TaskFinished = true; info = SearchResult.Fail_InvaildSetting; isCanceled = true; } googleCSESearcher.Vertification(SettingManager.GoogleCredentials.Item1, SettingManager.GoogleCredentials.Item3); if (!googleCSESearcher.IsVerification) // 인증되지 않았을 경우 { tb.SetValue(message: "API키가 인증되지 않았습니다.", maximum: 1); tb.TaskFinished = true; AddLog("API키가 인증되지 않았습니다.", TaskLogType.Failed); info = SearchResult.Fail_APIError; isCanceled = true; } }); IEnumerable <GoogleCSESearchResult> googleResult = null; ExportResultPack pack = null; if (!isCanceled) { try { googleResult = googleCSESearcher.Search(option); if (googleResult.Count() == 0) { info = SearchResult.Fail_NoResult; AddLog("검색 결과가 없습니다.", TaskLogType.Failed); } else { info = SearchResult.Success; AddLog("검색 결과를 내보내는 중입니다.", TaskLogType.Searching); pack = Export(option.OutputServices, googleResult, ServiceKind.GoogleCSE); } } catch (InvaildOptionException) { AddLog("'Google CSE' 검색 중 오류가 발생했습니다. [날짜를 사용하지 않은 상태에서는 '하루 기준' 옵션을 사용할 수 없습니다.]", TaskLogType.Failed); info = SearchResult.Fail_InvaildSetting; } catch (Exception) { AddLog("'Google CSE' 검색 중 오류가 발생했습니다. [잘못된 인증 정보를 입력했습니다.]", TaskLogType.Failed); info = SearchResult.Fail_APIError; Dispatcher.Invoke(() => { SettingManager.GoogleCredentials.Item2 = VerifyType.Invalid; SettingManager.GoogleCredentials.Item4 = VerifyType.Invalid; }); } if (info != SearchResult.Success) { Dispatcher.Invoke(() => { dict[googleCSESearcher].SetValue(message: "설정 오류가 발생했습니다.", maximum: 1); dict[googleCSESearcher].TaskFinished = true; }); } else if (info != SearchResult.Fail_NoResult) { Dispatcher.Invoke(() => { dict[googleCSESearcher].SetValue(message: "검색 결과가 없습니다.", maximum: 1); dict[googleCSESearcher].TaskFinished = true; }); } } Dispatcher.Invoke(() => { AddLog($"Google CSE 검색에 소요된 시간 : {sw.ElapsedMilliseconds}ms", TaskLogType.Complete); _taskReport.AddReport(new TaskReportData() { Query = option.Query, RequestService = ServiceKind.GoogleCSE, SearchCount = option.SearchCount, SearchData = googleResult, SearchDate = DateTime.Now, SearchResult = info, OutputFormat = option.OutputServices, ExportResultPack = pack }); _taskReport.SetLastReport(); googleSearching = false; _detailsOption.GoogleEnableChange(true); _vertManager.ChangeEditable(true, ServiceKind.GoogleCSE); }); }); thr.Start(); }
public void YoutubeSearch() { if (youtubeSearching) { AddLog("이미 Youtube 서비스에서 검색을 실행중입니다.", TaskLogType.Failed); return; } if (SettingManager.YoutubeSearchOption.UseDateSearch) { if (!SettingManager.YoutubeSearchOption.DateRange.Vaild) { AddLog("유튜브 검색의 날짜 설정이 잘못되었습니다.", TaskLogType.Failed); return; } } youtubeSearching = true; _detailsOption.YoutubeEnableChange(false); _vertManager.ChangeEditable(false, ServiceKind.Youtube); lvYoutube.Items.Clear(); Thread thr = new Thread(() => { var sw = new Stopwatch(); var youtubeSearcher = new YoutubeSearcher(); bool isCanceled = false; SearchResult info = SearchResult.Fail_APIError; YoutubeSearchOption option = YoutubeSearchOption.GetDefault(); youtubeSearcher.SearchProgressChanged += Searcher_SearchProgressChanged; youtubeSearcher.SearchFinished += Searcher_SearchFinished; youtubeSearcher.ChangeInfoMessage += Searcher_ChangeInfoMessage; youtubeSearcher.SearchItemFound += Searcher_SearchItemFound; Dispatcher.Invoke(() => { sw.Start(); AddLog("Youtube 검색 엔진을 초기화중입니다.", TaskLogType.SearchReady); option = SettingManager.YoutubeSearchOption; option.Query = tbQuery.Text; var tb = new TaskProgressBar(); tb.SetValue(title: "Youtube 검색", message: "검색이 진행중입니다.", maximum: 1); lvTask.Items.Insert(0, tb); dict[youtubeSearcher] = tb; if (option.OutputServices == OutputFormat.None) { tb.SetValue(message: "결과를 내보낼 위치가 없습니다.", maximum: 1); AddLog("검색을 내보낼 위치가 없습니다.", TaskLogType.Failed); info = SearchResult.Fail_InvaildSetting; isCanceled = true; } youtubeSearcher.Vertification(SettingManager.YoutubeCredentials.Item1); if (!youtubeSearcher.IsVerification) // 인증되지 않았을 경우 { tb.SetValue(message: "API키가 인증되지 않았습니다.", maximum: 1); AddLog("API키가 인증되지 않았습니다.", TaskLogType.Failed); info = SearchResult.Fail_APIError; isCanceled = true; } }); IEnumerable <YoutubeSearchResult> youtubeResult = null; ExportResultPack pack = null; if (!isCanceled) { try { youtubeResult = youtubeSearcher.Search(option); if (youtubeResult.Count() == 0) { info = SearchResult.Fail_NoResult; AddLog("검색 결과가 없습니다.", TaskLogType.Failed); } else { info = SearchResult.Success; AddLog("검색 결과를 내보내는 중입니다.", TaskLogType.Searching); pack = Export(option.OutputServices, youtubeResult, ServiceKind.Youtube); } } catch (InvaildOptionException) { AddLog("'Youtube' 검색 중 오류가 발생했습니다. [날짜를 사용하지 않은 상태에서는 '하루 기준' 옵션을 사용할 수 없습니다.]", TaskLogType.Failed); info = SearchResult.Fail_InvaildSetting; } catch (CredentialsTypeException ex) { // TODO: Exception에 오류 코드 추가 AddLog("'Youtube' 검색 중 오류가 발생했습니다. [Youtube의 API키가 올바르게 입력되지 않은거 같습니다.]", TaskLogType.Failed); Dispatcher.Invoke(() => SettingManager.YoutubeCredentials.Item2 = VerifyType.Invalid); info = SearchResult.Fail_APIError; } } Dispatcher.Invoke(() => { AddLog($"Youtube 검색에 소요된 시간 : {sw.ElapsedMilliseconds}ms", TaskLogType.Complete); _taskReport.AddReport(new TaskReportData() { Query = option.Query, RequestService = ServiceKind.Youtube, SearchCount = option.SearchCount, SearchData = youtubeResult, SearchDate = DateTime.Now, SearchResult = info, OutputFormat = option.OutputServices, ExportResultPack = pack }); _taskReport.SetLastReport(); youtubeSearching = false; _detailsOption.YoutubeEnableChange(true); _vertManager.ChangeEditable(true, ServiceKind.Youtube); }); }); thr.Start(); }
public void TwitterSearch() { if (twitterSearching) { AddLog("이미 Twitter 서비스에서 검색을 실행중입니다.", TaskLogType.Failed); return; } if (!SettingManager.TwitterSearchOption.DateRange.Vaild) { AddLog("트위터 검색의 날짜 설정이 잘못되었습니다.", TaskLogType.Failed); return; } twitterSearching = true; _detailsOption.TwitterEnableChange(false); _vertManager.ChangeEditable(false, ServiceKind.Twitter); lvTwitter.Items.Clear(); Thread thr = new Thread(() => { var sw = new Stopwatch(); var twitterSearcher = new TwitterSearcher(); bool isCanceled = false; SearchResult info = SearchResult.Fail_APIError; TwitterSearchOption option = null; twitterSearcher.SearchProgressChanged += Searcher_SearchProgressChanged; twitterSearcher.SearchFinished += Searcher_SearchFinished; twitterSearcher.ChangeInfoMessage += Searcher_ChangeInfoMessage; twitterSearcher.SearchItemFound += Searcher_SearchItemFound; Dispatcher.Invoke(() => { sw.Start(); AddLog("Twitter 검색 엔진을 초기화중입니다.", TaskLogType.SearchReady); option = SettingManager.TwitterSearchOption; option.Query = tbQuery.Text; var tb = new TaskProgressBar(); tb.SetValue(title: "Twitter 검색", message: "검색이 진행중입니다.", maximum: 1); lvTask.Items.Insert(0, tb); dict[twitterSearcher] = tb; if (option.OutputServices == OutputFormat.None) { tb.SetValue(message: "결과를 내보낼 위치가 없습니다.", maximum: 1); AddLog("검색을 내보낼 위치가 없습니다.", TaskLogType.Failed); tb.TaskFinished = true; info = SearchResult.Fail_InvaildSetting; isCanceled = true; } if (!TwitterSearcher.IsVerification) { tb.SetValue(message: "API키가 인증되지 않았습니다.", maximum: 1); AddLog("API키가 인증되지 않았습니다.", TaskLogType.Failed); tb.TaskFinished = true; info = SearchResult.Fail_APIError; isCanceled = true; } }); IEnumerable <TwitterSearchResult> twitterResult = null; ExportResultPack pack = null; if (!isCanceled) { try { twitterResult = twitterSearcher.Search(option); if (twitterResult.Count() == 0) { info = SearchResult.Fail_NoResult; AddLog("검색 결과가 없습니다.", TaskLogType.Failed); } else { info = SearchResult.Success; AddLog("검색 결과를 내보내는 중입니다.", TaskLogType.Searching); pack = Export(option.OutputServices, twitterResult, ServiceKind.Twitter); } } catch (InvaildOptionException) { AddLog("'Twitter' 검색 중 오류가 발생했습니다. [날짜를 사용하지 않은 상태에서는 '하루 기준' 옵션을 사용할 수 없습니다.]", TaskLogType.Failed); info = SearchResult.Fail_InvaildSetting; } catch (InternetUnstableException) { AddLog("'Twitter' 검색 중 오류가 발생했습니다. [인터넷 환경이 불안정한거 같습니다.]", TaskLogType.Failed); } } Dispatcher.Invoke(() => { AddLog($"Twitter 검색에 소요된 시간 : {sw.ElapsedMilliseconds}ms", TaskLogType.Complete); _taskReport.AddReport(new TaskReportData() { Query = option.Query, RequestService = ServiceKind.Twitter, SearchCount = option.SearchCount, SearchData = twitterResult, SearchDate = DateTime.Now, SearchResult = info, OutputFormat = option.OutputServices, ExportResultPack = pack }); _taskReport.SetLastReport(); twitterSearching = false; _detailsOption.TwitterEnableChange(true); _vertManager.ChangeEditable(true, ServiceKind.Twitter); }); }); thr.Start(); }
public void Dispose() { TaskLabel.Dispose(); TaskProgressBar.Dispose(); TaskButton.Dispose(); }
public CloseDialog(TaskScheduler uiScheduler, TaskProgressBar progressBar) { _ui = uiScheduler; _progressBar = progressBar; }
/// <inheritdoc/> public override void RunTask(ITask task) { #region Sanity checks if (task == null) throw new ArgumentNullException(nameof(task)); #endregion if (Verbosity <= Verbosity.Batch) task.Run(CancellationToken, CredentialProvider); else { Log.Debug("Task: " + task.Name); Console.Error.WriteLine(task.Name + @"..."); using (var progressBar = new TaskProgressBar()) task.Run(CancellationToken, CredentialProvider, progressBar); } }