int IVsSolutionEvents.OnAfterCloseSolution(object pUnkReserved)
 {
     testSystemRoot = null;
     roots.Clear();
     dataBase             = null;
     dataGrid.ItemsSource = null;
     return(VSConstants.S_OK);
 }
        private void LoadSettings(bool quiet)
        {
            // CmdArgs
            ThreadHelper.ThrowIfNotOnUIThread();

            DataTable dataTable = new DataTable();

            dataTable.Columns.Add("CommandArguments");
            dataTable.Columns.Add("Filename");
            DTE2 dte = (DTE2)Package.GetGlobalService(typeof(DTE));

            try
            {
                if (File.Exists(dte.Solution.FullName + @".debugaddin.cmdargs"))
                {
                    string[] lines = File.ReadAllLines(dte.Solution.FullName + @".debugaddin.cmdargs");
                    if (lines.Length > 0 && lines[0] == "Version 1.2")
                    {
                        foreach (var array in Utils.TupleUp(lines.Skip(1), 2))
                        {
                            dataTable.Rows.Add(array[0], array[1]);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Utils.PrintMessage("Exception", ex.Message + "\n" + ex.StackTrace, true);
            }

            dataTable.RowChanged += (x, y) => SaveCmdArgs(dataTable);
            dataTable.RowDeleted += (x, y) => SaveCmdArgs(dataTable);
            dataGrid.ItemsSource  = dataTable.DefaultView;

            // Roots

            LoadRoots();

            // Cases

            try
            {
                dataBase = new DataBaseRefresher.DataBase();
                if (File.Exists(dte.Solution.FullName + @".debugaddin.algotests"))
                {
                    dataBase.LoadFromFile(dte.Solution.FullName + @".debugaddin.algotests");
                }
            }
            catch (Exception ex)
            {
                Utils.PrintMessage("Exception", ex.Message + "\n" + ex.StackTrace, true);
            }

            if (quiet == false)
            {
                System.Windows.Forms.MessageBox.Show("Loaded!");
            }
        }