private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { DateTime processStartDate = DateTime.Now; DateTime? lastProcessStartDate = null; QueryRunner queryRunner = (QueryRunner)e.Argument; try { SyncTaskStatus syncTaskStatus = SyncTasksManager.GetInstance().GetLastSyncTaskStatus(queryRunner.Task); if (syncTaskStatus != null) { lastProcessStartDate = syncTaskStatus.StartTime; } SyncTasksManager.GetInstance().SaveProcessStatus(queryRunner.Task.ProcessID, "Exporting items", null); SyncTasksManager.GetInstance().ExportSyncTaskItems(queryRunner.Task, true, true, true, queryRunner.backgroundWorker, lastProcessStartDate, 0); SyncTasksManager.GetInstance().SaveProcessStatus(queryRunner.Task.ProcessID, "Processing export items", null); SyncTasksManager.GetInstance().ProcessSyncTaskExportFiles(queryRunner.Task, queryRunner.backgroundWorker); SyncTasksManager.GetInstance().SaveProcessStatus(queryRunner.Task.ProcessID, "Importing items", null); SyncTasksManager.GetInstance().ImportSyncTaskItems(queryRunner.Task, queryRunner.Task.ShouldSkipUpdates, new string[] { }, queryRunner.backgroundWorker); SyncTasksManager.GetInstance().SaveSyncTaskStatus(queryRunner.Task, processStartDate, DateTime.Now, true, string.Empty); } catch (Exception ex) { Logger.Error(ex, "QueryRunner"); SyncTasksManager.GetInstance().SaveProcessStatus(queryRunner.Task.ProcessID, "Failed, check log", null); } queryRunner.State = RunnerState.Complete; }
private void SyncBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { object[] arguments = (object[])e.Argument; SyncTask syncTask = (SyncTask)arguments[0]; bool shouldImportListItems = (bool)arguments[1]; bool shouldExportListItems = (bool)arguments[2]; bool shouldImportDocuments = (bool)arguments[3]; bool shouldExportDocuments = (bool)arguments[4]; bool shouldSkipUpdates = (bool)arguments[5]; int includeVersionsLimit = (int)arguments[6]; string[] excludeFields = (string[])arguments[7]; try { SyncTasksManager.GetInstance().ExportSyncTaskItems(syncTask, shouldExportListItems, shouldExportDocuments, shouldImportListItems, SyncBackgroundWorker, null, includeVersionsLimit); if (shouldImportListItems == true) { SyncTasksManager.GetInstance().ProcessSyncTaskExportFiles(syncTask, SyncBackgroundWorker); SyncTasksManager.GetInstance().ImportSyncTaskItems(syncTask, shouldSkipUpdates, excludeFields, SyncBackgroundWorker); } string folderPath = ConfigurationManager.GetInstance().GetSyncTaskFolder(syncTask); System.Diagnostics.Process.Start("explorer.exe", folderPath); } catch (Exception ex) { MessageBox.Show("An error occured:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace); Logger.Error(ex, "ProcessSyncTaskExport"); } }
public static void PerformRequests() { lock (lockObject) { IEnumerable <QueryRunner> normal = from QueryRunner runner in QueuedRequests where runner.State == RunnerState.New select runner; if ((DateTime.Now - LastQueuePerformed).TotalSeconds > 10) { //logger.Info(String.Format("Performing request for QueuedRequests.Count:{0}...", QueuedRequests.Count)); //logger.Info(String.Format("Performing request for High.Count:{0}...", high.Count())); //logger.Info(String.Format("Performing request for Normal.Count:{0}...", normal.Count())); LastQueuePerformed = DateTime.Now; } foreach (QueryRunner runner in normal) { bool isTaskInProgress = (from QueryRunner inProgressRunner in QueuedRequests where runner.Task.ID == inProgressRunner.Task.ID && inProgressRunner.State == RunnerState.InProgress select runner).Count() > 0 ? true : false; if (isTaskInProgress == true) { continue; } SyncTasksManager.GetInstance().SaveProcessStatus(runner.Task.ProcessID, "Started", null); //logger.Info(String.Format("Performing request for {0} RetriedCount:{1}...", runner.Request.TargetMeter.ToLogString(), runner.RetryCount)); runner.RunAsync(); } } }
private void RefreshButton_Click(object sender, RoutedEventArgs e) { SLExcelData processedData = SyncTasksManager.GetInstance().GetProcessData(SyncTask.ID, SyncTask.ProcessID, IsCompleted); if (processedData == null) { SyncTask syncTask = SyncTasksManager.GetInstance().SyncTasks.Where(t => t.ProcessID == SyncTask.ProcessID).FirstOrDefault(); if (syncTask != null) { List <ProgressItem> progressItems = new List <ProgressItem>(); progressItems.Add(new ProgressItem() { Action = "Synchronization", Message = SyncTask.DestinationListName, Status = syncTask.Status, Path = "" }); Application.Current.Dispatcher.Invoke(new Action(() => { TasksDataGrid.ItemsSource = null; TasksDataGrid.ItemsSource = progressItems; })); } } else { try { List <ProgressItem> progressItems = new List <ProgressItem>(); foreach (List <string> datarow in processedData.DataRows) { progressItems.Add(new ProgressItem() { Action = datarow[0], Message = datarow[2], Status = datarow[1], Path = datarow[4] }); } Application.Current.Dispatcher.Invoke(new Action(() => { TasksDataGrid.ItemsSource = null; TasksDataGrid.ItemsSource = progressItems; })); } catch (Exception ex) { } } }
private void DeleteTaskButton_Click(object sender, RoutedEventArgs e) { List <SyncTask> synctasks = new List <SyncTask>(); foreach (object synchTask in TasksDataGrid.SelectedItems) { SyncTask _synchTask = (SyncTask)synchTask; SyncTasksManager.GetInstance().SyncTasks.Remove(_synchTask); } SyncTasksManager.GetInstance().SaveSyncTasks(); RefreshButton_Click(null, null); }
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { DateTime processStartDate = DateTime.Now; DateTime? lastProcessStartDate = null; QueryRunner queryRunner = (QueryRunner)e.Argument; SyncTaskStatus syncTaskStatus = SyncTasksManager.GetInstance().GetLastSyncTaskStatus(queryRunner.Task); if (syncTaskStatus != null) { lastProcessStartDate = syncTaskStatus.StartTime; } SyncTasksManager.GetInstance().ExportSyncTaskItems(queryRunner.Task, true, true, true, queryRunner.backgroundWorker, lastProcessStartDate, 0); SyncTasksManager.GetInstance().ProcessSyncTaskExportFiles(queryRunner.Task, queryRunner.backgroundWorker); SyncTasksManager.GetInstance().ImportSyncTaskItems(queryRunner.Task, queryRunner.Task.ShouldSkipUpdates, new string[] { }, queryRunner.backgroundWorker); SyncTasksManager.GetInstance().SaveSyncTaskStatus(queryRunner.Task, processStartDate, DateTime.Now, true, string.Empty); queryRunner.State = RunnerState.Complete; }
private void RefreshButton_Click(object sender, RoutedEventArgs e) { if (HistoryDatePicker.SelectedDate.HasValue == false) { HistoryDatePicker.SelectedDate = DateTime.Now; } List <SyncTask> synctasks = SyncTasksManager.GetInstance().SyncTasks; TasksDataGrid.ItemsSource = null; TasksDataGrid.ItemsSource = synctasks; List <SyncTask> pastSynctasks = SyncTasksManager.GetInstance().GetSyncTaskHistories(HistoryDatePicker.SelectedDate.Value); PastTasksDataGrid.ItemsSource = null; PastTasksDataGrid.ItemsSource = pastSynctasks; }
private void ProgressButton_Click(object sender, RoutedEventArgs e) { string taskId = ((Button)e.Source).Tag.ToString(); SyncTask syncTask = SyncTasksManager.GetInstance().SyncTasks.Where(t => t.ID.ToString().Equals(taskId, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault(); if (syncTask == null) { MessageBox.Show("Task not found"); return; } SyncTaskProgressForm form = new SyncTaskProgressForm(); form.SyncTask = syncTask; form.IsCompleted = true; form.ShowDialog(this.ParentWindow, "Progress", false, true); }
private void EditButton_Click(object sender, RoutedEventArgs e) { string taskId = ((Button)e.Source).Tag.ToString(); SyncTask syncTask = SyncTasksManager.GetInstance().SyncTasks.Where(t => t.ID.ToString().Equals(taskId, StringComparison.InvariantCultureIgnoreCase)).FirstOrDefault(); if (syncTask == null) { MessageBox.Show("Task not found"); return; } SyncCopyListWizardForm syncCopyListWizardForm = new SyncCopyListWizardForm(); syncCopyListWizardForm.Initialize(syncTask); if (syncCopyListWizardForm.ShowDialog(this.ParentWindow, "Data Import Wizard", false, true) == true) { } }
public static void EnqueueRequests(DateTime referenceTime) { if (IsEnqueueInProgress == true) { return; } IsEnqueueInProgress = true; try { var time = referenceTime.TimeOfDay; //List<SyncTask> synctasks = SyncTasksManager.GetInstance().GetTestListItemSyncTasks().ToList(); IEnumerable <SyncTask> synctasks = SyncTasksManager.GetInstance().SyncTasks.Where(t => t.Scheduled == true); foreach (var synctask in synctasks) { QueryRunner queryRunner = QueuedRequests.Where(t => t.Task.ID == synctask.ID).FirstOrDefault(); if (queryRunner == null) { SyncTasksManager.GetInstance().SaveProcessStatus(synctask.ProcessID, "Queued", referenceTime); EnqueAction(synctask); } else if (synctask.ScheduleInterval == 0 && queryRunner.State == RunnerState.Complete) { QueuedRequests.Remove(queryRunner); SyncTasksManager.GetInstance().AddSyncTaskHistory(synctask); SyncTasksManager.GetInstance().SaveProcessStatus(synctask.ProcessID, "Completed", referenceTime); SyncTasksManager.GetInstance().RemoveProcess(synctask.ProcessID); } else if (queryRunner.Task.LastRunStartDate.AddSeconds(synctask.ScheduleInterval) < DateTime.Now && queryRunner.State == RunnerState.Complete) { SyncTasksManager.GetInstance().AddSyncTaskHistory(synctask); QueuedRequests.Remove(queryRunner); SyncTasksManager.GetInstance().SaveProcessStatus(synctask.ProcessID, "Queued", referenceTime); EnqueAction(synctask); } } } catch (Exception ex) { } IsEnqueueInProgress = false; }
private void SyncBackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { object[] arguments = (object[])e.Argument; SyncTask syncTask = (SyncTask)arguments[0]; try { //SyncTasksManager.GetInstance().ExportSyncTaskItems(syncTask, shouldExportListItems, shouldExportDocuments, shouldImportListItems, SyncBackgroundWorker, null); //SyncTasksManager.GetInstance().ProcessSyncTaskExportFiles(syncTask, SyncBackgroundWorker); SyncTasksManager.GetInstance().ImportSyncTaskItems(syncTask, false, new string[] { }, SyncBackgroundWorker); string folderPath = ConfigurationManager.GetInstance().GetSyncTaskFolder(syncTask); System.Diagnostics.Process.Start("explorer.exe", folderPath); } catch (Exception ex) { MessageBox.Show("An error occured:" + ex.Message + Environment.NewLine + "StackTrace:" + ex.StackTrace); Logger.Error(ex, "ProcessSyncTaskExport"); } }
public static void EnqueueRequests(DateTime referenceTime) { var time = referenceTime.TimeOfDay; //List<SyncTask> synctasks = SyncTasksManager.GetInstance().GetTestListItemSyncTasks().ToList(); List <SyncTask> synctasks = SyncTasksManager.GetInstance().SyncTasks.Where(t => t.Scheduled == true).ToList(); foreach (var synctask in synctasks) { QueryRunner queryRunner = QueuedRequests.Where(t => t.Task.ID == synctask.ID).FirstOrDefault(); if (queryRunner == null) { SyncTasksManager.GetInstance().SaveProcessStatus(synctask.ProcessID, "Queued", referenceTime); EnqueAction(synctask); } else if (queryRunner.Task.LastRunStartDate.AddSeconds(synctask.ScheduleInterval) < DateTime.Now && queryRunner.State == RunnerState.Complete) { QueuedRequests.Remove(queryRunner); SyncTasksManager.GetInstance().SaveProcessStatus(synctask.ProcessID, "Completed", referenceTime); EnqueAction(synctask); } } }
private void ScheduleNextButton_Click(object sender, RoutedEventArgs e) { SyncTask.ScheduleInterval = 0; SyncTask.ShouldSkipUpdates = SkipUpdateEventsCheckBox.IsChecked.Value; if (RunOnceRadioButtonYes.IsChecked == false) { int frequency = 0; if (int.TryParse(FrequencyTextBox.Text, out frequency) == false) { MessageBox.Show("This should be a numeric value"); //FrequencyTextBox.Select(); FrequencyTextBox.Focus(); return; } SyncTask.ScheduleInterval = frequency * 60 * 1000; } SyncTask.Scheduled = true; SyncTask.Status = "Awaiting to be queued"; Logger.Error("17", "SyncCopyListWizardForm"); if (IsInEditMode == false) { SyncTasksManager.GetInstance().AddSyncTask(SyncTask); } Logger.Error("18", "SyncCopyListWizardForm"); SyncTasksManager.GetInstance().SaveSyncTasks(); Logger.Error("19", "SyncCopyListWizardForm"); MessageBox.Show("Synchronization has started."); this.Close(true); Logger.Error("20", "SyncCopyListWizardForm"); SyncTaskProgressForm form = new SyncTaskProgressForm(); form.SyncTask = SyncTask; form.IsCompleted = false; form.ShowDialog(null, "Progress", false, true); }
public void Initialize() { SyncTasksComboBox.Items.Clear(); SyncTasksComboBox.DisplayMemberPath = "Name"; SyncTasksComboBox.ItemsSource = SyncTasksManager.GetInstance().SyncTasks; }