private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction) { if (reqAction == UserFinishedRequestedAction.Next) { var results = IdentifyChanges(false); // TODO: make possible to only have series filled out! // we require at least the series to be filled for all enabled ones var invalids = results.Count(pr => !pr.parser.Matches.ContainsKey(DBSeries.cParsedName) || string.IsNullOrEmpty(pr.parser.Matches[DBSeries.cParsedName])); invalids += results.Count(pr => (!pr.parser.Matches.ContainsKey(DBEpisode.cEpisodeIndex) || string.IsNullOrEmpty(pr.parser.Matches[DBEpisode.cEpisodeIndex])) && (!pr.parser.Matches.ContainsKey(DBOnlineEpisode.cFirstAired) || string.IsNullOrEmpty(pr.parser.Matches[DBOnlineEpisode.cFirstAired]))); invalids += results.Count(pr => (!pr.parser.Matches.ContainsKey(DBEpisode.cSeasonIndex) || string.IsNullOrEmpty(pr.parser.Matches[DBEpisode.cSeasonIndex])) && (!pr.parser.Matches.ContainsKey(DBOnlineEpisode.cFirstAired) || string.IsNullOrEmpty(pr.parser.Matches[DBOnlineEpisode.cFirstAired]))); if (invalids == 0) { if (UserFinishedEditing != null) { UserFinishedEditing(new UserInputResults(results, null), reqAction); } } else { MessageBox.Show("All Enabled results need at least the Series and [Season/Episode or AirDate] Filled out!", "Unable to continue", MessageBoxButtons.OK); return; } } else if (reqAction == UserFinishedRequestedAction.Cancel) { if (UserFinishedEditing != null) { UserFinishedEditing(null, reqAction); } } // we no longer need to listen to navigate event ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate); }
private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction) { if (reqAction == UserFinishedRequestedAction.Next) { isFinished = true; } if (UserFinishedEditing != null) { UserFinishedEditing(null, reqAction); } // we no longer need to listen to navigate event ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate); }
private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction) { if (UserFinishedEditing == null) { return; } if (reqAction == UserFinishedRequestedAction.Next) { // check if cells are in a dirty status // TODO: if so, force focus on 1st cell of active row to register changes if (dataGridViewIdentifySeries.IsCurrentRowDirty) { string currentCol = dataGridViewIdentifySeries.CurrentCell.OwningColumn.Name; // only interested in the dropdowncomboboxes if (currentCol == colOSeries || currentCol == colAction) { string message = "The series '{0}' is still in edit mode. Finish changes, then click Next again."; DialogResult result = MessageBox.Show(string.Format(message, dataGridViewIdentifySeries.CurrentRow.Cells[colSeries].Value), "Unfinished Changes", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information); if (result == DialogResult.Retry) { return; } } } UserFinishedEditing(new UserInputResults(givenResults, getApprovedResults()), reqAction); } else { UserFinishedEditing(null, reqAction); } // we no longer need to listen to navigate event ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate); }
private void ImportWizard_OnFinishedEditingEpisodes(UserInputResults inputResults, UserFinishedRequestedAction requestAction) { switch (requestAction) { case UserFinishedRequestedAction.Cancel: ParsingWizardProgress.DeInit(); break; case UserFinishedRequestedAction.Next: ParsingWizardHost.RemoveDetailsPanel(ParsingWizardEpIDPage); ParsingWizardHost.ShowDetailsPanel(ParsingWizardProgress); ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Next, false); break; case UserFinishedRequestedAction.ShowMe: // it was requested, tell the progress wizard to show it ParsingWizardHost.RemoveDetailsPanel(ParsingWizardProgress); ParsingWizardHost.ShowDetailsPanel(ParsingWizardEpIDPage); ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Prev, false); ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Next, true); break; default: break; } }
private void ImportWizard_OnFinishedSeriesID(UserInputResults inputResults, UserFinishedRequestedAction requestAction) { ParsingWizardSeriesIDPage.UserFinishedEditing -= new UserFinishedEditingDelegate(ImportWizard_OnFinishedSeriesID); ParsingWizardHost.RemoveDetailsPanel(ParsingWizardSeriesIDPage); if (requestAction == UserFinishedRequestedAction.Next) { m_parser = new OnlineParsing(this); // and give it to the wizard ParsingWizardHost.Init(); // now show generic progress details (remove seriesIDPage) ParsingWizardHost.RemoveDetailsPanel(ParsingWizardSeriesIDPage); ParsingWizardHost.ShowDetailsPanel(ParsingWizardProgress); ParsingWizardProgress.Init(); ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Prev, false); ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Next, false); ParsingWizardHost.ImportFinished += new EventHandler(ImportWizard_OnFinished); // only now do we set up the parser itself and fire it off ImportWizardParseParams.m_userInputResult = inputResults; // this will be requested by the the parsing engine at the appropriate time ImportWizardParseParams.UserEpisodeMatcher = ParsingWizardEpIDPage; ImportWizardParseParams.m_files = ParsingWizardParsingPage.allFoundFiles; // else they will be marked as removed ParsingWizardEpIDPage.UserFinishedEditing += new UserFinishedEditingDelegate(ImportWizard_OnFinishedEditingEpisodes); // finally fire it off m_timingStart = DateTime.Now; m_parser.Start(ImportWizardParseParams); } else if (requestAction == UserFinishedRequestedAction.Prev) { // unregister events ParsingWizardSeriesIDPage.UserFinishedEditing -= new UserFinishedEditingDelegate(ImportWizard_OnFinishedSeriesID); ParsingWizardSeriesIDPage.SeriesGridPopulated -= new ImportPanelSeriesID.SeriesGridPopulatedDelegate(ImportWizard_OnSeriesGridPopulated); // remove existing panel and show previous one ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Prev, false); ParsingWizardHost.ShowDetailsPanel(ParsingWizardParsingPage); ParsingWizardHost.RemoveDetailsPanel(ParsingWizardSeriesIDPage); ParsingWizardParsingPage.Init(); ParsingWizardSeriesIDPage.ClearResults(); } else if (requestAction == UserFinishedRequestedAction.Cancel) { } }
private void ImportWizard_OnFinishedLocalParsing(UserInputResults values, UserFinishedRequestedAction reqAction) { ParsingWizardParsingPage.ParsingGridPopulated -= new ImportPanelParsing.ParsingGridPopulatedDelegate(ImportWizard_OnParsingGridPopulated); ParsingWizardHost.RemoveDetailsPanel(ParsingWizardParsingPage); if (reqAction == UserFinishedRequestedAction.Next) { ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Prev, false); ParsingWizardHost.SetButtonState(ImportWizard.WizardButton.Next, false); // show the seriesIdentification Page ParsingWizardHost.RemoveDetailsPanel(ParsingWizardParsingPage); ParsingWizardHost.ShowDetailsPanel(ParsingWizardSeriesIDPage); ParsingWizardSeriesIDPage.SeriesGridPopulated += new ImportPanelSeriesID.SeriesGridPopulatedDelegate(ImportWizard_OnSeriesGridPopulated); ParsingWizardSeriesIDPage.UserFinishedEditing += new UserFinishedEditingDelegate(ImportWizard_OnFinishedSeriesID); ParsingWizardSeriesIDPage.Init(values.ParseResults); } else if (reqAction == UserFinishedRequestedAction.Cancel) { } }
private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction) { if (UserFinishedEditing == null) return; if (reqAction == UserFinishedRequestedAction.Next) { // check if cells are in a dirty status // TODO: if so, force focus on 1st cell of active row to register changes if (dataGridViewIdentifySeries.IsCurrentRowDirty) { string currentCol = dataGridViewIdentifySeries.CurrentCell.OwningColumn.Name; // only interested in the dropdowncomboboxes if (currentCol == colOSeries || currentCol == colAction) { string message = "The series '{0}' is still in edit mode. Finish changes, then click Next again."; DialogResult result = MessageBox.Show(string.Format(message, dataGridViewIdentifySeries.CurrentRow.Cells[colSeries].Value), "Unfinished Changes", MessageBoxButtons.RetryCancel, MessageBoxIcon.Information); if (result == DialogResult.Retry) return; } } UserFinishedEditing(new UserInputResults(givenResults, getApprovedResults()), reqAction); } else UserFinishedEditing(null, reqAction); // we no longer need to listen to navigate event ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate); }
private void ImportWizard_OnWizardNavigate(UserFinishedRequestedAction reqAction) { if (reqAction == UserFinishedRequestedAction.Next) { var results = IdentifyChanges(false); // TODO: make possible to only have series filled out! // we require at least the series to be filled for all enabled ones var invalids = results.Count(pr => !pr.parser.Matches.ContainsKey(DBSeries.cParsedName) || string.IsNullOrEmpty(pr.parser.Matches[DBSeries.cParsedName])); invalids += results.Count(pr => (!pr.parser.Matches.ContainsKey(DBEpisode.cEpisodeIndex) || string.IsNullOrEmpty(pr.parser.Matches[DBEpisode.cEpisodeIndex])) && (!pr.parser.Matches.ContainsKey(DBOnlineEpisode.cFirstAired) || string.IsNullOrEmpty(pr.parser.Matches[DBOnlineEpisode.cFirstAired]))); invalids += results.Count(pr => (!pr.parser.Matches.ContainsKey(DBEpisode.cSeasonIndex) || string.IsNullOrEmpty(pr.parser.Matches[DBEpisode.cSeasonIndex])) && (!pr.parser.Matches.ContainsKey(DBOnlineEpisode.cFirstAired) || string.IsNullOrEmpty(pr.parser.Matches[DBOnlineEpisode.cFirstAired]))); if (invalids == 0) { if (UserFinishedEditing != null) UserFinishedEditing(new UserInputResults(results, null), reqAction); } else { MessageBox.Show("All Enabled results need at least the Series and [Season/Episode or AirDate] Filled out!", "Unable to continue", MessageBoxButtons.OK); return; } } else if (reqAction == UserFinishedRequestedAction.Cancel) { if (UserFinishedEditing != null) UserFinishedEditing(null, reqAction); } // we no longer need to listen to navigate event ImportWizard.OnWizardNavigate -= new ImportWizard.WizardNavigateDelegate(ImportWizard_OnWizardNavigate); }