예제 #1
0
        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);
        }
예제 #2
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);
        }
예제 #3
0
        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);
        }
예제 #4
0
        // 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);
        }