// Observe LOAD functions public static FileOperationResult ObservedLoad(FileOperationDelegate loadFile, string fileName, string message, FileErrorPolicy policy) { try { loadFile(); OnFileLoaded(new FileNameEventArgs(fileName)); return(FileOperationResult.OK); } catch (Exception e) { switch (policy) { case FileErrorPolicy.Inform: ServiceManager.MessageService.InformSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileLoading}", e); break; case FileErrorPolicy.ProvideAlternative: ChooseSaveErrorResult r = ServiceManager.MessageService.ChooseSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileLoading}", e, false); if (r.IsRetry) { return(ObservedLoad(loadFile, fileName, message, policy)); } else if (r.IsIgnore) { return(FileOperationResult.Failed); } break; } } return(FileOperationResult.Failed); }
// Observe SAVE functions public static FileOperationResult ObservedSave(FileOperationDelegate saveFile, string fileName, string message, FileErrorPolicy policy) { System.Diagnostics.Debug.Assert(IsValidPath(fileName)); try { saveFile(); OnFileSaved(new FileNameEventArgs(fileName)); return(FileOperationResult.OK); } catch (Exception e) { switch (policy) { case FileErrorPolicy.Inform: ServiceManager.MessageService.InformSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e); break; case FileErrorPolicy.ProvideAlternative: ChooseSaveErrorResult r = ServiceManager.MessageService.ChooseSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e, false); if (r.IsRetry) { return(ObservedSave(saveFile, fileName, message, policy)); } else if (r.IsIgnore) { return(FileOperationResult.Failed); } break; } } return(FileOperationResult.Failed); }
private static FileOperationResult ObservedSaveHandleError(Exception e, NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy) { switch (policy) { case FileErrorPolicy.Inform: ServiceManager.Instance.MessageService.InformSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e); break; case FileErrorPolicy.ProvideAlternative: ChooseSaveErrorResult r = ServiceManager.Instance.MessageService.ChooseSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e, true); if (r.IsRetry) { return(ObservedSave(saveFileAs, fileName, message, policy)); } else if (r.IsIgnore) { return(FileOperationResult.Failed); } else if (r.IsSaveAlternative) { return(ObservedSave(saveFileAs, r.AlternativeFileName, message, policy)); } break; } return(FileOperationResult.Failed); }
public ChooseSaveErrorResult ChooseSaveError(string fileName, string message, string dialogName, Exception exceptionGot, bool chooseLocationEnabled) { ChooseSaveErrorResult r = ChooseSaveErrorResult.Ignore; Invoke( delegate { restartlabel: using (SaveErrorChooseDialog dlg = new SaveErrorChooseDialog(fileName, message, dialogName, exceptionGot, chooseLocationEnabled)) { switch (dlg.ShowDialog(DialogOwner)) { case DialogResult.OK: // choose location: using (SaveFileDialog fdiag = new SaveFileDialog()) { fdiag.OverwritePrompt = true; fdiag.AddExtension = true; fdiag.CheckFileExists = false; fdiag.CheckPathExists = true; fdiag.Title = "Choose alternate file name"; fdiag.FileName = fileName; if (fdiag.ShowDialog() == DialogResult.OK) { r = ChooseSaveErrorResult.SaveAlternative(fdiag.FileName); break; } else { goto restartlabel; } } case DialogResult.Retry: r = ChooseSaveErrorResult.Retry; break; default: r = ChooseSaveErrorResult.Ignore; break; } } }); return r; }
public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy) { System.Diagnostics.Debug.Assert(IsValidPath(fileName)); try { string directory = Path.GetDirectoryName(fileName); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } saveFileAs(fileName); RaiseFileSaved(new FileNameEventArgs(fileName)); return(FileOperationResult.OK); } catch (Exception e) { switch (policy) { case FileErrorPolicy.Inform: ServiceManager.MessageService.InformSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e); break; case FileErrorPolicy.ProvideAlternative: ChooseSaveErrorResult r = ServiceManager.MessageService.ChooseSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e, true); if (r.IsRetry) { return(ObservedSave(saveFileAs, fileName, message, policy)); } else if (r.IsIgnore) { return(FileOperationResult.Failed); } else if (r.IsSaveAlternative) { return(ObservedSave(saveFileAs, r.AlternativeFileName, message, policy)); } break; } } return(FileOperationResult.Failed); }