private void ObtainDbRecords(object source, ElapsedEventArgs e) { this.Dispatcher.Invoke((Action)(() => { // Hard UI reset is needed here ProjectProxyManager manager = new ProjectProxyManager(); this.UIProjectProxyList = manager.GetAll(); this.projects.ItemsSource = this.UIProjectProxyList; })); }
private void PromptDialog_Loaded(object sender, RoutedEventArgs e) { // Initial DB data retrieve Task task = Task.Factory.StartNew(() => { TestRunProxyManager testRunManager = new TestRunProxyManager(); this.TestRunProxy = testRunManager.GetById(RunId); ProjectProxyManager proxyManager = new ProjectProxyManager(); this.ProjectProxyList = proxyManager.GetAll(); }); task.ContinueWith(next => { // Update the main Thread as it is the owner of the UI elements this.Dispatcher.Invoke((Action)(() => { foreach (var testCase in this.TestRunProxy.TestCasesList) { ProjectProxy projectProxy = this.ProjectProxyList.Where(proj => proj.Areas.Any(a => a.ID == testCase.AreaID)).FirstOrDefault(); if (projectProxy != null) { AreaProxy areaProxy = projectProxy.Areas.Where(a => a.ID == testCase.AreaID).FirstOrDefault(); if (areaProxy != null) { TestCaseProxy testCaseToRemove = areaProxy.TestCasesList.Where(tc => tc.Id == testCase.Id).FirstOrDefault(); if (testCaseToRemove != null) areaProxy.TestCasesList.Remove(testCaseToRemove); } } } this.SetCurrentAccentColor(); this.ProjectTreeView.ItemsSource = this.ProjectProxyList; this.TestCasesList = this.TestRunProxy.TestCasesList; this.SelectedTestCasesList.ItemsSource = this.TestCasesList; this.TestRunList.Visibility = Visibility.Visible; this.progressBar.Visibility = Visibility.Hidden; })); }); }
private void MainWindowProjectAndTestCases_Loaded(object sensder, RoutedEventArgs e) { // Initial DB data retrieve Task task = Task.Factory.StartNew(() => { ProjectProxyManager manager = new ProjectProxyManager(); this.UIProjectProxyList = manager.GetAll(); }); task.ContinueWith(next => { // Update the main Thread as it is the owner of the UI elements this.Dispatcher.Invoke((Action)(() => { this.SetCurrentAccentColor(); this.projects.ItemsSource = UIProjectProxyList; this.MainTable.Visibility = Visibility.Visible; this.progressBar.Visibility = Visibility.Hidden; // Register timer event dbCallback.Elapsed += new ElapsedEventHandler(this.ObtainDbRecords); // 30 minutes = 1800000 dbCallback.Interval = 1800000; dbCallback.Start(); })); }); }