Example #1
0
        public void TestReadReal(string path, int expectedNumberOfTargets)
        {
            var reader          = new AccessTargetDatabaseReader();
            var dataset         = reader.ReadDb(GetTestSuiteDataPath(path));
            var numberOfTargets = dataset.ConsensusTargets.Count;

            Assert.AreEqual(expectedNumberOfTargets, numberOfTargets);
        }
        private void ProcessAnalysisJob(object param)
        {
            // Insert database save location here
            var saveDatabaseDialog = new SaveFileDialog();

            if (Options.DatabaseType != DatabaseType.NotSaved)
            {
                if (RestoreDirectory == null)
                {
                    RestoreDirectory = "C:\\";
                }
                saveDatabaseDialog.InitialDirectory = RestoreDirectory;
                saveDatabaseDialog.RestoreDirectory = true;

                if (Options.DatabaseType == DatabaseType.SQLite)
                {
                    saveDatabaseDialog.Filter = "Mass Tag Database (*.mtdb)|*.mtdb|All Files (*.*)|*.*";
                    saveDatabaseDialog.Title  = "Save to MTDB";
                }
                else
                {
                    saveDatabaseDialog.Filter = "Access Database (*.mdb)|*.mdb|All Files (*.*)|*.*";
                    saveDatabaseDialog.Title  = "Save to Access Database";
                }
                saveDatabaseDialog.ShowDialog();
                if (saveDatabaseDialog.FileName != "")
                {
                    RestoreDirectory  = Path.GetDirectoryName(saveDatabaseDialog.FileName);
                    SavedDatabasePath = saveDatabaseDialog.FileName;
                }
            }



            DateTime start  = DateTime.Now;
            var      result = ProcessAnalysisTargets();

            OnAnalysisJobProcessed(new MtdbResultChangedEventArgs(result));
            DateTime end = DateTime.Now;

            Console.WriteLine("Analysis processed after " + (end - start));

            if (File.Exists(SavedDatabasePath))
            {
                ITargetDatabaseReader     reader;
                IEnumerable <LcmsDataSet> databaseDatasets = null;
                var loaded = false;
                MessageBoxResult errorResult = MessageBoxResult.OK;
                if (SavedDatabasePath.EndsWith("mtdb"))
                {
                    reader = new SqLiteTargetDatabaseReader();
                }
                else
                {
                    reader = new AccessTargetDatabaseReader();
                }
                try
                {
                    databaseDatasets = reader.Read(SavedDatabasePath);
                    loaded           = true;
                }
                catch (Exception)
                {
                    errorResult = MessageBox.Show(string.Format("{0} does not contain valid data to be imported into MTDBCreator", SavedDatabasePath),
                                                  "Error loading file", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation);
                }

                if (loaded)
                {
                    foreach (var dataset in databaseDatasets)
                    {
                        var exists        = false;
                        var priorAnalysis = new AnalysisJobItem(dataset.Name, dataset.Tool);
                        priorAnalysis.DataSet = dataset;
                        foreach (var item in AnalysisJobItems)
                        {
                            if (item.Title == priorAnalysis.Title)
                            {
                                item.DataSet = dataset;
                                exists       = true;
                            }
                        }
                        if (!exists)
                        {
                            AnalysisJobItems.Add(priorAnalysis);
                        }
                    }
                }
                else if (errorResult == MessageBoxResult.Cancel)
                {
                    // User cancelled processing
                    var squelch = 1;
                    squelch++;
                    return;
                }
            }

            if (result != null && param == null)
            {
                DateTime procStart = DateTime.Now;
                result = ProcessAnalysisDatabase();

                if (result == null && BackgroundWorkProcessHelper.MostRecentResult != null)
                {
                    // This condition will be true if MultithreadingEnabled = false
                    result = BackgroundWorkProcessHelper.MostRecentResult;

                    if (Database == null && result is TargetDatabase)
                    {
                        Database = (TargetDatabase)result;
                    }
                }

                OnAnalysisJobProcessed(new MtdbResultChangedEventArgs(result));
                end = DateTime.Now;
                Console.WriteLine("Alignment processed after " + (end - start) + " total");
                Console.WriteLine("Alignment took " + (end - procStart));

                if (result != null && saveDatabaseDialog.FileName != "")
                {
                    DateTime saveStart = DateTime.Now;

                    SaveAnalysisDatabase(saveDatabaseDialog.FileName);
                    IsDatabaseSaved = true;
                    end             = DateTime.Now;
                    Console.WriteLine("Database Save took " + (end - saveStart));
                }
            }
        }