diff --git a/CHANGELIST.md b/CHANGELIST.md index 033f148e..5a3c593f 100644 --- a/CHANGELIST.md +++ b/CHANGELIST.md @@ -31,6 +31,7 @@ - Simplify GetMediaType return - Reduce call complexity for login result - Use new ProtectionDictionary type +- Replace user info func with ProcessUserInfoDelegate ### 3.2.2 (2024-09-24) diff --git a/MPF.Frontend/DumpEnvironment.cs b/MPF.Frontend/DumpEnvironment.cs index 22f4277d..a38e8f9f 100644 --- a/MPF.Frontend/DumpEnvironment.cs +++ b/MPF.Frontend/DumpEnvironment.cs @@ -424,7 +424,7 @@ namespace MPF.Frontend public async Task VerifyAndSaveDumpOutput( IProgress? resultProgress = null, IProgress? protectionProgress = null, - Func? processUserInfo = null, + ProcessUserInfoDelegate? processUserInfo = null, SubmissionInfo? seedInfo = null) { if (_processor == null) @@ -470,8 +470,7 @@ namespace MPF.Frontend { resultProgress?.Report(ResultEventArgs.Success("Waiting for additional disc information...")); - bool? filledInfo; - (filledInfo, submissionInfo) = processUserInfo(submissionInfo); + bool? filledInfo = processUserInfo(ref submissionInfo); if (filledInfo == true) resultProgress?.Report(ResultEventArgs.Success("Additional disc information added!")); diff --git a/MPF.Frontend/ProcessUserInfoDelegate.cs b/MPF.Frontend/ProcessUserInfoDelegate.cs new file mode 100644 index 00000000..b2f9facd --- /dev/null +++ b/MPF.Frontend/ProcessUserInfoDelegate.cs @@ -0,0 +1,11 @@ +using SabreTools.RedumpLib.Data; + +namespace MPF.Frontend +{ + /// + /// Determines how user information is processed, if at all + /// + /// Submission info that may be overwritten + /// True for successful updating, false or null otherwise + public delegate bool? ProcessUserInfoDelegate(ref SubmissionInfo? info); +} \ No newline at end of file diff --git a/MPF.Frontend/ViewModels/CheckDumpViewModel.cs b/MPF.Frontend/ViewModels/CheckDumpViewModel.cs index 73e5e8ee..b0b0d60b 100644 --- a/MPF.Frontend/ViewModels/CheckDumpViewModel.cs +++ b/MPF.Frontend/ViewModels/CheckDumpViewModel.cs @@ -445,7 +445,7 @@ namespace MPF.Frontend.ViewModels /// Performs MPF.Check functionality /// /// An error message if failed, otherwise string.Empty/null - public async Task CheckDump(Func processUserInfo) + public async Task CheckDump(ProcessUserInfoDelegate processUserInfo) { if (string.IsNullOrEmpty(InputPath)) return "Invalid Input path"; diff --git a/MPF.Frontend/ViewModels/MainViewModel.cs b/MPF.Frontend/ViewModels/MainViewModel.cs index 5c62acdd..d8b2494a 100644 --- a/MPF.Frontend/ViewModels/MainViewModel.cs +++ b/MPF.Frontend/ViewModels/MainViewModel.cs @@ -68,7 +68,7 @@ namespace MPF.Frontend.ViewModels /// /// Function to process user information /// - private Func? _processUserInfo; + private ProcessUserInfoDelegate? _processUserInfo; #endregion @@ -566,7 +566,7 @@ namespace MPF.Frontend.ViewModels public void Init( Action loggerAction, Func displayUserMessage, - Func processUserInfo) + ProcessUserInfoDelegate processUserInfo) { // Set the callbacks _logger = loggerAction; diff --git a/MPF.UI/Windows/CheckDumpWindow.xaml.cs b/MPF.UI/Windows/CheckDumpWindow.xaml.cs index 8ceab781..7239ce97 100644 --- a/MPF.UI/Windows/CheckDumpWindow.xaml.cs +++ b/MPF.UI/Windows/CheckDumpWindow.xaml.cs @@ -181,7 +181,7 @@ namespace MPF.UI.Windows /// /// SubmissionInfo object to display and possibly change /// Dialog open result - public (bool?, SubmissionInfo?) ShowDiscInformationWindow(SubmissionInfo? submissionInfo) + public bool? ShowDiscInformationWindow(ref SubmissionInfo? submissionInfo) { var discInformationWindow = new DiscInformationWindow(CheckDumpViewModel.Options, submissionInfo) { @@ -199,7 +199,7 @@ namespace MPF.UI.Windows if (result == true) submissionInfo = (discInformationWindow.DiscInformationViewModel.SubmissionInfo.Clone() as SubmissionInfo)!; - return (result, submissionInfo!); + return result; } #endregion diff --git a/MPF.UI/Windows/MainWindow.xaml.cs b/MPF.UI/Windows/MainWindow.xaml.cs index e5cefeef..75c2b756 100644 --- a/MPF.UI/Windows/MainWindow.xaml.cs +++ b/MPF.UI/Windows/MainWindow.xaml.cs @@ -287,8 +287,8 @@ namespace MPF.UI.Windows public void ShowDebugDiscInfoWindow() { var submissionInfo = MainViewModel.CreateDebugSubmissionInfo(); - var result = ShowDiscInformationWindow(submissionInfo); - Formatter.ProcessSpecialFields(result.Item2); + _ = ShowDiscInformationWindow(ref submissionInfo); + Formatter.ProcessSpecialFields(submissionInfo); } /// @@ -296,7 +296,7 @@ namespace MPF.UI.Windows /// /// SubmissionInfo object to display and possibly change /// Dialog open result - public (bool?, SubmissionInfo?) ShowDiscInformationWindow(SubmissionInfo? submissionInfo) + public bool? ShowDiscInformationWindow(ref SubmissionInfo? submissionInfo) { if (MainViewModel.Options.ShowDiscEjectReminder) CustomMessageBox.Show(this, "It is now safe to eject the disc", "Eject", MessageBoxButton.OK, MessageBoxImage.Information); @@ -317,7 +317,7 @@ namespace MPF.UI.Windows if (result == true) submissionInfo = (discInformationWindow.DiscInformationViewModel.SubmissionInfo.Clone() as SubmissionInfo)!; - return (result, submissionInfo!); + return result; } ///