private SyncStatusForm ShowSyncStatusForm(string title, string header, IEnumerable <string> files, IEnumerable <string> dropDownOptions)
        {
            SyncStatusForm form = new SyncStatusForm();

            form.Text = title;
            form.SetHeaderText(header);
            form.SetData(files, dropDownOptions);
            form.StartPosition = FormStartPosition.CenterParent;
            form.ShowDialog(this);
            return(form);
        }
        private async void HandleSyncStatus()
        {
            IEnumerable <string> dsFiles = DirectoryDataSourceAdapter.GetGameFileNames();
            IEnumerable <string> dbFiles = DataSourceAdapter.GetGameFileNames();
            IEnumerable <string> diff    = dsFiles.Except(dbFiles);

            SyncStatusForm form = ShowSyncStatusForm("Sync Status", "Files that exist in the GameFiles directory but not the Database:", diff,
                                                     new string[] { "Do Nothing", "Add to Library", "Delete" });
            Task  task = HandleSyncStatusGameFilesOption((SyncFileOption)form.SelectedOptionIndex, form.GetSelectedFiles());
            await task;

            diff = dbFiles.Except(dsFiles);

            form = ShowSyncStatusForm("Sync Status", "Files that exist in the Database but not the GameFiles directory:", diff,
                                      new string[] { "Do Nothing", "Find in idgames", "Delete" });
            task = HandleSyncStatusLibraryOptions((SyncFileOption)form.SelectedOptionIndex, form.GetSelectedFiles());
            await task;
        }