private void btnOpenProject_ItemClick(object sender, ItemClickEventArgs e) { //let the user select a project from the Project folder. If none are present, let the user know if (!Directory.Exists(m_appSettings.ProjectFolder)) Directory.CreateDirectory(m_appSettings.ProjectFolder); System.Data.DataTable ValidProjects = new System.Data.DataTable(); ValidProjects.Columns.Add("Projectname"); ValidProjects.Columns.Add("NumberBackups"); ValidProjects.Columns.Add("NumberTransactions"); ValidProjects.Columns.Add("DateTimeModified"); ValidProjects.Columns.Add("Version"); string[] projects = Directory.GetDirectories(m_appSettings.ProjectFolder); // filter for folders with a projectproperties.xml file foreach (string project in projects) { string[] projectfiles = Directory.GetFiles(project, "projectproperties.xml"); if (projectfiles.Length > 0) { System.Data.DataTable projectprops = new System.Data.DataTable("T5PROJECT"); projectprops.Columns.Add("CARMAKE"); projectprops.Columns.Add("CARMODEL"); projectprops.Columns.Add("CARMY"); projectprops.Columns.Add("CARVIN"); projectprops.Columns.Add("NAME"); projectprops.Columns.Add("BINFILE"); projectprops.Columns.Add("VERSION"); projectprops.ReadXml((string)projectfiles.GetValue(0)); // valid project, add it to the list if (projectprops.Rows.Count > 0) { string projectName = projectprops.Rows[0]["NAME"].ToString(); ValidProjects.Rows.Add(projectName, GetNumberOfBackups(projectName), GetNumberOfTransactions(projectName), GetLastAccessTime(projectprops.Rows[0]["BINFILE"].ToString()), projectprops.Rows[0]["VERSION"].ToString()); } } } if (ValidProjects.Rows.Count > 0) { frmProjectSelection projselection = new frmProjectSelection(); projselection.SetDataSource(ValidProjects); if (projselection.ShowDialog() == DialogResult.OK) { string selectedproject = projselection.GetProjectName(); if (selectedproject != "") { OpenProject(selectedproject); } } } else { frmInfoBox info = new frmInfoBox("No projects were found, please create one first!"); } }