void lbDates_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { // Warn user if (MessageBox.Show("Are you 100% certain that you want to restore to " + formattedDates[((ListBox)sender).SelectedIndex] + "? If so, I will first calculate the number of changes that will occur on items in the database.", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == System.Windows.Forms.DialogResult.Yes) { int numberOfChanges = 0; int numberOfNewItems = 0; sEngine.CompareWithArchivedDay("Archive\\Daily\\" + folders[((ListBox)sender).SelectedIndex], out numberOfNewItems, out numberOfChanges); if (MessageBox.Show("Number of new items that will be lost: " + numberOfNewItems.ToString(), "Lost Items", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk) == System.Windows.Forms.DialogResult.OK) { if (MessageBox.Show("Number of irreversible changes to items: " + numberOfChanges.ToString(), "Items Changes", MessageBoxButtons.OKCancel, MessageBoxIcon.Stop) == System.Windows.Forms.DialogResult.OK) { if (MessageBox.Show("Proceed with restore to " + formattedDates[((ListBox)sender).SelectedIndex] + "? The Backoffice will exit after completing the restore.", "Sure?", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) { // Perform Restore FileManagementEngine.RestoreToArchiveDir("Archive\\Daily\\" + folders[((ListBox)sender).SelectedIndex], DateTime.Now.ToString().Replace('/', '.').Replace(':', '.')); } } } } } else if (e.KeyCode == Keys.Escape) { this.Close(); } }