public static CheckResult GetOverwriteByAction(FileInfo sourceFile, FileInfo targetFile, string dateFormat, HowToHandleExistingItem defaultAction, string defaultAddText, bool defaultRemember, out Exception exception, Form parent) { exception = null; CheckResult CheckResult = new CheckResult { FormResult = DialogResult.OK, OverwriteFile = ExistingFile.Exception, AddText = defaultAddText, RememberAction = defaultRemember, SelectedAction = defaultAction }; // Open Form, if action is ask what to do if (defaultAction == HowToHandleExistingItem.AskAnyTime) { HandleExistingFilesForm HandleExistingFilesForm = new HandleExistingFilesForm(HandleExistingFilesForm.FormMode.FileExists, sourceFile, targetFile, defaultAction, defaultAddText, defaultRemember); DialogResult FormResult; // = HandleExistingFilesForm.ShowDialog(parentForm); if (parent != null) { // Show form modal to parent form, invoke FormResult = (DialogResult)parent.Invoke((Func <DialogResult>)(() => HandleExistingFilesForm.ShowDialog())); } else { // Show form with no parent form FormResult = HandleExistingFilesForm.ShowDialog(); } CheckResult.FormResult = FormResult; CheckResult.AddText = HandleExistingFilesForm.ActionAddTextText; CheckResult.RememberAction = HandleExistingFilesForm.RememberActionHandleExistingFiles; CheckResult.SelectedAction = HandleExistingFilesForm.ActionHandleExistingFiles; if (FormResult == DialogResult.Cancel) { return(CheckResult); } } CheckResult.OverwriteFile = GetOverwriteByAction(sourceFile, targetFile, dateFormat, CheckResult.SelectedAction, CheckResult.AddText, out exception); return(CheckResult); }
/// <summary> /// Gets how if the existing file should been overwritten, by selected action /// </summary> /// <param name="sourceFile">Source file to copy</param> /// <param name="targetFile">Target file to copy the data to</param> /// <param name="dateFormat">Date format for adding date text to exisiting file</param> /// <param name="action">Action, how to handle exisitng files</param> /// <param name="addText">Text to add to existing files</param> /// <param name="exception">Exception while handle existing file</param> /// <returns>Should the exisiting file been overwritten, was renamend or occourded an exception</returns> private static ExistingFile GetOverwriteByAction(FileInfo sourceFile, FileInfo targetFile, string dateFormat, HowToHandleExistingItem action, string addText, out Exception exception) { exception = null; switch (action) { case HowToHandleExistingItem.AddText: return(TargetAddText(targetFile, dateFormat, addText, out exception)); case HowToHandleExistingItem.AskAnyTime: throw new ArgumentException("HandleExistingFiles->GetOverwriteByAction->Invalid value", nameof(action)); case HowToHandleExistingItem.OverwriteAll: return(TargetOverwrite()); case HowToHandleExistingItem.OverwriteIfDifferentLength: return(SourceDifferentLength(sourceFile, targetFile)); case HowToHandleExistingItem.OverwriteIfDifferentLengthOrNewer: return(SourceDifferentLengthOrNewer(sourceFile, targetFile)); case HowToHandleExistingItem.OverwriteIfNewer: return(SourceNewer(sourceFile, targetFile)); case HowToHandleExistingItem.Skipp: return(SourceSkip()); default: throw new ArgumentException("HandleExistingFiles->GetOverwriteByAction->Invalid value", nameof(action)); } }
/// <summary> /// Gets how to handle existing files. Show form to ask how to handle, if necessary /// </summary> /// <param name="sourceFile">Source file to copy</param> /// <param name="targetFile">Target file to copy the data to</param> /// <param name="dateFormat">Date format for adding date text to exisiting file</param> /// <param name="defaultAction">Pre defined action, how to handle exisitng files</param> /// <param name="defaultAddText">Default text to add to existing files</param> /// <param name="defaultRemember">Default state of remember action CheckBox</param> /// <param name="exception">Exception while handle existing file</param> /// <returns>Should the exisiting file been overwritten, was renamend or occourded an exception</returns> public static CheckResult GetOverwriteByAction(FileInfo sourceFile, FileInfo targetFile, string dateFormat, HowToHandleExistingItem defaultAction, string defaultAddText, bool defaultRemember, out Exception exception) { return(GetOverwriteByAction(sourceFile, targetFile, dateFormat, defaultAction, defaultAddText, defaultRemember, out exception, null)); }