static FileOperationResult ObservedLoadHandleException(Exception e, FileOperationDelegate loadFile, FileName fileName, string message, FileErrorPolicy policy) { message = message + Environment.NewLine + Environment.NewLine + e.Message; var messageService = ServiceSingleton.GetRequiredService <IMessageService>(); switch (policy) { case FileErrorPolicy.Inform: messageService.InformSaveError(fileName, message, "${res:FileUtilityService.ErrorWhileLoading}", e); break; case FileErrorPolicy.ProvideAlternative: ChooseSaveErrorResult r = 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 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); }
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); }
// Observe SAVE functions public static FileOperationResult ObservedSave(FileOperationDelegate saveFile, string fileName, string message, FileErrorPolicy policy) { System.Diagnostics.Debug.Assert(IsValidPath(fileName)); try { saveFile(); 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, false); if (r.IsRetry) { return(ObservedSave(saveFile, fileName, message, policy)); } else if (r.IsIgnore) { return(FileOperationResult.Failed); } break; } } return(FileOperationResult.Failed); }