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