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();
                }));
            });
        }