コード例 #1
0
        public void Import(ImportQueueItemViewModel importQueueItemViewModel)
        {
            string databaseDumpFilePath;

            if (SharedSetupContext.SelectedDownloadMode == SharedSetupContext.DownloadMode.DOWNLOAD_MANAGER)
            {
                databaseDumpFilePath = importQueueItemViewModel.Collection.DownloadFilePath;
            }
            else
            {
                OpenFileDialogResult selectDatabaseDumpFileDialogResult = ImportWindowViewModel.SelectDatabaseDumpFile(MainModel);
                if (!selectDatabaseDumpFileDialogResult.DialogResult)
                {
                    return;
                }
                databaseDumpFilePath = selectDatabaseDumpFileDialogResult.SelectedFilePaths.First();
            }
            importQueueItemViewModel.Status = ImportQueueItemStatus.IMPORTING;
            TableType expectedTableType;

            switch (importQueueItemViewModel.Collection.Identifier)
            {
            case SharedSetupContext.CollectionIdentifier.NON_FICTION:
                expectedTableType = TableType.NON_FICTION;
                break;

            case SharedSetupContext.CollectionIdentifier.FICTION:
                expectedTableType = TableType.FICTION;
                break;

            case SharedSetupContext.CollectionIdentifier.SCIMAG:
                expectedTableType = TableType.SCI_MAG;
                break;

            default:
                throw new Exception($"Unexpected collection identifier: {importQueueItemViewModel.Collection.Identifier}.");
            }
            ImportWindowViewModel importWindowViewModel = new ImportWindowViewModel(MainModel, databaseDumpFilePath, expectedTableType);
            IWindowContext        importWindowContext   = WindowManager.CreateWindow(RegisteredWindows.WindowKey.IMPORT_WINDOW, importWindowViewModel,
                                                                                     SetupWizardWindowContext);

            importWindowContext.ShowDialog();
            switch (importWindowViewModel.Status)
            {
            case ImportWindowViewModel.ImportStatus.IMPORT_COMPLETE:
                importQueueItemViewModel.Status = ImportQueueItemStatus.IMPORT_SUCCESSFUL;
                SelectNextImportQueueItem();
                break;

            case ImportWindowViewModel.ImportStatus.IMPORT_CANCELLED:
                importQueueItemViewModel.Status = ImportQueueItemStatus.IMPORT_CANCELLED;
                break;

            default:
                importQueueItemViewModel.Status = ImportQueueItemStatus.IMPORT_ERROR;
                break;
            }
        }
コード例 #2
0
        private void SelectNextImportQueueItem()
        {
            foreach (ImportQueueItemViewModel importQueueItemViewModel in ImportQueue)
            {
                importQueueItemViewModel.IsNextInQueue = false;
            }
            ImportQueueItemViewModel nextImportQueueItem =
                ImportQueue.FirstOrDefault(importQueueItem => importQueueItem.Status == ImportQueueItemStatus.NOT_IMPORTED ||
                                           importQueueItem.Status == ImportQueueItemStatus.IMPORT_CANCELLED || importQueueItem.Status == ImportQueueItemStatus.IMPORT_ERROR);

            if (nextImportQueueItem != null)
            {
                nextImportQueueItem.IsNextInQueue = true;
                HideNextButton();
            }
            else
            {
                ShowNextButton();
            }
        }