Example #1
0
        // 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);
        }
Example #2
0
        // 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);
        }
Example #3
0
        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;
 }
Example #5
0
        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);
        }