Make OverwritePrompt an interface

This commit is contained in:
Ben Olden-Cooligan 2022-06-19 09:47:50 -07:00
parent 1ecc208956
commit c4154d3897
9 changed files with 16 additions and 17 deletions

View File

@ -15,12 +15,12 @@ public class AutoSaver
private readonly OperationProgress _operationProgress;
private readonly ISaveNotify _notify;
private readonly PdfExporter _pdfExporter;
private readonly OverwritePrompt _overwritePrompt;
private readonly IOverwritePrompt _overwritePrompt;
private readonly ScopedConfig _config;
private readonly TiffHelper _tiffHelper;
private readonly ImageContext _imageContext;
public AutoSaver(IConfigProvider<PdfSettings> pdfSettingsProvider, IConfigProvider<ImageSettings> imageSettingsProvider, ErrorOutput errorOutput, DialogHelper dialogHelper, OperationProgress operationProgress, ISaveNotify notify, PdfExporter pdfExporter, OverwritePrompt overwritePrompt, ScopedConfig config, TiffHelper tiffHelper, ImageContext imageContext)
public AutoSaver(IConfigProvider<PdfSettings> pdfSettingsProvider, IConfigProvider<ImageSettings> imageSettingsProvider, ErrorOutput errorOutput, DialogHelper dialogHelper, OperationProgress operationProgress, ISaveNotify notify, PdfExporter pdfExporter, IOverwritePrompt overwritePrompt, ScopedConfig config, TiffHelper tiffHelper, ImageContext imageContext)
{
_pdfSettingsProvider = pdfSettingsProvider;
_imageSettingsProvider = imageSettingsProvider;

View File

@ -10,10 +10,10 @@ namespace NAPS2.ImportExport.Images;
public class SaveImagesOperation : OperationBase
{
private readonly ImageContext _imageContext;
private readonly OverwritePrompt _overwritePrompt;
private readonly IOverwritePrompt _overwritePrompt;
private readonly TiffHelper _tiffHelper;
public SaveImagesOperation(ImageContext imageContext, OverwritePrompt overwritePrompt, TiffHelper tiffHelper)
public SaveImagesOperation(ImageContext imageContext, IOverwritePrompt overwritePrompt, TiffHelper tiffHelper)
{
_imageContext = imageContext;
_overwritePrompt = overwritePrompt;

View File

@ -7,10 +7,10 @@ namespace NAPS2.ImportExport.Pdf;
public class SavePdfOperation : OperationBase
{
private readonly PdfExporter _pdfExporter;
private readonly OverwritePrompt _overwritePrompt;
private readonly IOverwritePrompt _overwritePrompt;
private readonly IEmailProviderFactory? _emailProviderFactory;
public SavePdfOperation(PdfExporter pdfExporter, OverwritePrompt overwritePrompt,
public SavePdfOperation(PdfExporter pdfExporter, IOverwritePrompt overwritePrompt,
IEmailProviderFactory? emailProviderFactory = null)
{
_pdfExporter = pdfExporter;

View File

@ -3,7 +3,7 @@ using NAPS2.Lang.ConsoleResources;
namespace NAPS2.Automation;
public class ConsoleOverwritePrompt : OverwritePrompt
public class ConsoleOverwritePrompt : IOverwritePrompt
{
public static bool ForceOverwrite { get; set; }
@ -14,7 +14,7 @@ public class ConsoleOverwritePrompt : OverwritePrompt
_errorOutput = errorOutput;
}
public override OverwriteResponse ConfirmOverwrite(string path)
public OverwriteResponse ConfirmOverwrite(string path)
{
if (ForceOverwrite)
{

View File

@ -13,7 +13,7 @@ public class ConsoleModule : NinjectModule
{
Bind<IPdfPasswordProvider>().To<ConsolePdfPasswordProvider>();
Bind<ErrorOutput>().To<ConsoleErrorOutput>();
Bind<OverwritePrompt>().To<ConsoleOverwritePrompt>();
Bind<IOverwritePrompt>().To<ConsoleOverwritePrompt>();
Bind<OperationProgress>().To<ConsoleOperationProgress>();
Bind<IComponentInstallPrompt>().To<ConsoleComponentInstallPrompt>();
Bind<DialogHelper>().To<WinFormsDialogHelper>(); // TODO: We don't really want this, but it is an explicit option, so it's okay for now...

View File

@ -18,7 +18,7 @@ public class WinFormsModule : NinjectModule
Bind<IBatchScanPerformer>().To<BatchScanPerformer>();
Bind<IPdfPasswordProvider>().To<WinFormsPdfPasswordProvider>();
Bind<ErrorOutput>().To<MessageBoxErrorOutput>();
Bind<OverwritePrompt>().To<WinFormsOverwritePrompt>();
Bind<IOverwritePrompt>().To<WinFormsOverwritePrompt>();
Bind<OperationProgress>().To<WinFormsOperationProgress>().InSingletonScope();
Bind<IComponentInstallPrompt>().To<WinFormsComponentInstallPrompt>();
Bind<DialogHelper>().To<WinFormsDialogHelper>();

View File

@ -2,9 +2,9 @@
namespace NAPS2.WinForms;
public class WinFormsOverwritePrompt : OverwritePrompt
public class WinFormsOverwritePrompt : IOverwritePrompt
{
public override OverwriteResponse ConfirmOverwrite(string path)
public OverwriteResponse ConfirmOverwrite(string path)
{
string fileName = Path.GetFileName(path);
var dialogResult = MessageBox.Show(string.Format(MiscResources.ConfirmOverwriteFile, fileName),

View File

@ -1,13 +1,12 @@
namespace NAPS2.Util;
// TODO: Make an interface
// TODO: Refactor to Eto and move to NAPS2.EtoForms (or something non-eto and non-winforms if I want operations in the Sdk...)
/// <summary>
/// A base class for objects that can prompt the user to overwrite an existing file.
///
/// Implementors: WinFormsOverwritePrompt, ConsoleOverwritePrompt
/// </summary>
public abstract class OverwritePrompt
public interface IOverwritePrompt
{
/// <summary>
/// Asks the user if they would like to overwrite the specified file.
@ -16,5 +15,5 @@ public abstract class OverwritePrompt
/// </summary>
/// <param name="path">The path of the file to overwrite.</param>
/// <returns>Yes, No, or Cancel.</returns>
public abstract OverwriteResponse ConfirmOverwrite(string path);
public OverwriteResponse ConfirmOverwrite(string path);
}

View File

@ -1,6 +1,6 @@
namespace NAPS2.Util;
public class StubOverwritePrompt : OverwritePrompt
public class StubOverwritePrompt : IOverwritePrompt
{
public override OverwriteResponse ConfirmOverwrite(string path) => OverwriteResponse.No;
public OverwriteResponse ConfirmOverwrite(string path) => OverwriteResponse.No;
}