コード例 #1
0
 public FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy)
 {
     return(ObservedSave(saveFileAs,
                         fileName,
                         resourceService.GetString("NetFocus.Services.FileUtilityService.CantSaveFileStandardText"),
                         policy));
 }
コード例 #2
0
        static FileOperationResult ObservedSaveHandleError(Exception e, NamedFileOperationDelegate saveFileAs, 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.ErrorWhileSaving}", e);
                break;

            case FileErrorPolicy.ProvideAlternative:
                ChooseSaveErrorResult r = 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);
        }
コード例 #3
0
        public FileOperationResult ObservedLoad(NamedFileOperationDelegate loadNamedFileDelegate, string fileName, string message, FileErrorPolicy policy)
        {
            LoadWrapper           loadWrapper           = new LoadWrapper(loadNamedFileDelegate, fileName);
            FileOperationDelegate fileOperationDelegate = new FileOperationDelegate(loadWrapper.Invoke);

            return(ObservedLoad(fileOperationDelegate, fileName, message, policy));
        }
コード例 #4
0
 public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy)
 {
     return(ObservedSave(saveFileAs,
                         fileName,
                         ResourceService.GetString("FanHai.Gui.Framework.Services.FileUtilityService.CantSaveFileStandardText"),
                         policy));
 }
コード例 #5
0
 public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, FileName fileName, FileErrorPolicy policy = FileErrorPolicy.Inform)
 {
     return(ObservedSave(saveFileAs,
                         fileName,
                         ResourceService.GetString("ICSharpCode.Services.FileUtilityService.CantSaveFileStandardText"),
                         policy));
 }
コード例 #6
0
 public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy)
 {
     return(ObservedLoad(saveFileAs,
                         fileName,
                         ResourceService.GetString("Libra.Services.FileUtilityService.CantLoadFileStandardText"),
                         policy));
 }
コード例 #7
0
ファイル: FileUtility.cs プロジェクト: g-shabanin/Katrin-CRM
        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);
        }
コード例 #8
0
        public void OpenFile(string fileName)
        {
            FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));

            Debug.Assert(fileUtilityService.IsValidFileName(fileName));

            // test, if file fileName exists
            if (!fileName.StartsWith("http://"))
            {
                // test, if an untitled file should be opened
                if (!Path.IsPathRooted(fileName))
                {
                    foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection)
                    {
                        if (content.IsUntitled && content.UntitledName == fileName)
                        {
                            content.SelectView();
                            return;
                        }
                    }
                }
                else if (!fileUtilityService.TestFileExists(fileName))
                {
                    return;
                }
            }
            //检查当前文件有没有在视图中打开过.
            foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection)
            {
                // WINDOWS DEPENDENCY : ToUpper()
                if (content.ContentName != null &&
                    content.ContentName.ToUpper() == fileName.ToUpper())
                {
                    //content.SelectView();
                    MessageBox.Show("该文件已经打开!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                    return;
                }
            }

            ViewTypeService viewTypeService = (ViewTypeService)ServiceManager.Services.GetService(typeof(ViewTypeService));

            IFileService fileService = (IFileService)ServiceManager.Services.GetService(typeof(IFileService));
            IViewType    viewType    = viewTypeService.GetViewTypePerFileName(fileName);

            if (viewType != null)
            {
                LoadFileWrapper            fileWrapper = new LoadFileWrapper(viewType);
                NamedFileOperationDelegate nameFileOperationDelegate = new NamedFileOperationDelegate(fileWrapper.Invoke);
                FileOperationResult        result = fileUtilityService.ObservedLoad(nameFileOperationDelegate, fileName);
                if (result == FileOperationResult.OK)                  //如果当前文档打开成功,则把当前打开的文档添加到最近打开的列表中.
                {
                    fileService.RecentOpenMemeto.AddLastFile(fileName);
                }
            }
            else
            {
                throw new ApplicationException("Can't open " + fileName + ", no display codon found.");
            }
        }
コード例 #9
0
ファイル: FileUtility.cs プロジェクト: Eisai/pragmasql
        public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
        {
            System.Diagnostics.Debug.Assert(IsValidFileName(fileName));
            try {
                string directory = Path.GetDirectoryName(fileName);
                if (!Directory.Exists(directory))
                {
                    Directory.CreateDirectory(directory);
                }
                saveFileAs(fileName);
                OnFileSaved(new FileNameEventArgs(fileName));
                return(FileOperationResult.OK);
            } catch (Exception e) {
                switch (policy)
                {
                case FileErrorPolicy.Inform:
                    using (SaveErrorInformDialog informDialog = new SaveErrorInformDialog(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e)) {
                        informDialog.ShowDialog();
                    }
                    break;

                case FileErrorPolicy.ProvideAlternative:
restartlabel:
                    using (SaveErrorChooseDialog chooseDialog = new SaveErrorChooseDialog(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e, true)) {
                        switch (chooseDialog.ShowDialog())
                        {
                        case DialogResult.OK:
                            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)
                                {
                                    return(ObservedSave(saveFileAs, fdiag.FileName, message, policy));
                                }
                                else
                                {
                                    goto restartlabel;
                                }
                            }

                        case DialogResult.Retry:
                            return(ObservedSave(saveFileAs, fileName, message, policy));

                        case DialogResult.Ignore:
                            return(FileOperationResult.Failed);
                        }
                    }
                    break;
                }
            }
            return(FileOperationResult.Failed);
        }
コード例 #10
0
        public FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
        {
            Debug.Assert(IsValidFileName(fileName));
            try
            {
                saveFileAs(fileName);
                return(FileOperationResult.OK);
            }
            catch (Exception e)
            {
                switch (policy)
                {
                case FileErrorPolicy.Inform:
                    using (SaveErrorInformDialog informDialog = new SaveErrorInformDialog(fileName, message, "Error while saving", e))
                    {
                        informDialog.ShowDialog();
                    }
                    break;

                case FileErrorPolicy.ProvideAlternative:
restartlabel:
                    using (SaveErrorChooseDialog chooseDialog = new SaveErrorChooseDialog(fileName, message, "Error while saving", e, true))
                    {
                        switch (chooseDialog.ShowDialog())
                        {
                        case DialogResult.OK:
                            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)
                                {
                                    return(ObservedSave(saveFileAs, fdiag.FileName, message, policy));
                                }
                                else
                                {
                                    goto restartlabel;
                                }
                            }

                        case DialogResult.Retry:
                            return(ObservedSave(saveFileAs, fileName, message, policy));

                        case DialogResult.Ignore:
                            return(FileOperationResult.Failed);
                        }
                    }
                    break;
                }
            }
            return(FileOperationResult.Failed);
        }
コード例 #11
0
 public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, FileName fileName, string message, FileErrorPolicy policy = FileErrorPolicy.Inform)
 {
     System.Diagnostics.Debug.Assert(IsValidPath(fileName));
     try {
         Directory.CreateDirectory(fileName.GetParentDirectory());
         saveFileAs(fileName);
         RaiseFileSaved(new FileNameEventArgs(fileName));
         return(FileOperationResult.OK);
     } catch (IOException e) {
         return(ObservedSaveHandleError(e, saveFileAs, fileName, message, policy));
     } catch (UnauthorizedAccessException e) {
         return(ObservedSaveHandleError(e, saveFileAs, fileName, message, policy));
     }
 }
コード例 #12
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);
        }
コード例 #13
0
 public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
 {
     return(ObservedLoad(new FileOperationDelegate(delegate { saveFileAs(fileName); }), fileName, message, policy));
 }
コード例 #14
0
ファイル: FileUtility.cs プロジェクト: ichengzi/SharpDevelop
 static FileOperationResult ObservedSaveHandleError(Exception e, NamedFileOperationDelegate saveFileAs, 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.ErrorWhileSaving}", e);
             break;
         case FileErrorPolicy.ProvideAlternative:
             ChooseSaveErrorResult r = 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;
 }
コード例 #15
0
ファイル: FileUtil.cs プロジェクト: vincentvalenlee/XCRM
 public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy)
 {
     return ObservedSave(saveFileAs,
                         fileName,
                         ResourceService.GetString("ECBC.Services.FileUtil.CantSaveFileStandardText"),
                         policy);
 }
コード例 #16
0
 public FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
 {
     Debug.Assert(IsValidFileName(fileName));
     #if false
     try {
         fileName = System.IO.Path.GetFullPath (fileName);
         saveFileAs(fileName);
         return FileOperationResult.OK;
     } catch (Exception e) {
         switch (policy) {
             case FileErrorPolicy.Inform:
                 using (SaveErrorInformDialog informDialog = new SaveErrorInformDialog(fileName, message, "Error while saving", e)) {
                     informDialog.ShowDialog();
                 }
                 break;
             case FileErrorPolicy.ProvideAlternative:
                 restartlabel:
                     using (SaveErrorChooseDialog chooseDialog = new SaveErrorChooseDialog(fileName, message, "Error while saving", e, true)) {
                         switch (chooseDialog.ShowDialog()) {
                             case DialogResult.OK:
                                 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) {
                                         return ObservedSave(saveFileAs, fdiag.FileName, message, policy);
                                     } else {
                                         goto restartlabel;
                                     }
                                 }
                                 case DialogResult.Retry:
                                     return ObservedSave(saveFileAs, fileName, message, policy);
                             case DialogResult.Ignore:
                                 return FileOperationResult.Failed;
                         }
                     }
                     break;
         }
     }
     #else
     try {
         saveFileAs(fileName);
         return FileOperationResult.OK;
     } catch (Exception e) {
         Console.WriteLine("Error while saving as : " + e.ToString());
     }
     #endif
     return FileOperationResult.Failed;
 }
コード例 #17
0
		public void OpenFile(string fileName)
		{
			FileUtilityService fileUtilityService = (FileUtilityService)ServiceManager.Services.GetService(typeof(FileUtilityService));

			Debug.Assert(fileUtilityService.IsValidFileName(fileName));
				
			// test, if file fileName exists
			if (!fileName.StartsWith("http://")) {
				// test, if an untitled file should be opened
				if (!Path.IsPathRooted(fileName)) { 
					foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) {
						if (content.IsUntitled && content.UntitledName == fileName) {
							content.SelectView();
							return;
						}
					}
				} else if (!fileUtilityService.TestFileExists(fileName)) {
					return;
				}
			}
			//检查当前文件有没有在视图中打开过.
			foreach (IViewContent content in WorkbenchSingleton.Workbench.ViewContentCollection) {
				// WINDOWS DEPENDENCY : ToUpper()
				if (content.ContentName != null && 
				    content.ContentName.ToUpper() == fileName.ToUpper()) {
					//content.SelectView();
					MessageBox.Show("该文件已经打开!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
					return;
				}
			}
			
			ViewTypeService viewTypeService = (ViewTypeService)ServiceManager.Services.GetService(typeof(ViewTypeService));
			
			IFileService fileService = (IFileService)ServiceManager.Services.GetService(typeof(IFileService));
			IViewType viewType = viewTypeService.GetViewTypePerFileName(fileName);
			
			if (viewType != null) {
				LoadFileWrapper fileWrapper = new LoadFileWrapper(viewType);
				NamedFileOperationDelegate nameFileOperationDelegate = new NamedFileOperationDelegate(fileWrapper.Invoke);
				FileOperationResult result = fileUtilityService.ObservedLoad(nameFileOperationDelegate,fileName);
				if (result == FileOperationResult.OK) {//如果当前文档打开成功,则把当前打开的文档添加到最近打开的列表中.
					fileService.RecentOpenMemeto.AddLastFile(fileName);
				}
			} else {
				throw new ApplicationException("Can't open " + fileName + ", no display codon found.");
			}
		}
コード例 #18
0
ファイル: FileUtility.cs プロジェクト: OmerRaviv/SharpDevelop
		public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy = FileErrorPolicy.Inform)
		{
			return ObservedLoad(new FileOperationDelegate(delegate { saveFileAs(fileName); }), fileName, message, policy);
		}
コード例 #19
0
ファイル: FileUtility.cs プロジェクト: OmerRaviv/SharpDevelop
		public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy = FileErrorPolicy.Inform)
		{
			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 (IOException e) {
				return ObservedSaveHandleError(e, saveFileAs, fileName, message, policy);
			} catch (UnauthorizedAccessException e) {
				return ObservedSaveHandleError(e, saveFileAs, fileName, message, policy);
			}
		}
コード例 #20
0
 public FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName)
 {
     return ObservedSave(saveFileAs, fileName, FileErrorPolicy.Inform);
 }
コード例 #21
0
 public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, FileName fileName, FileErrorPolicy policy = FileErrorPolicy.Inform)
 {
     return ObservedSave(saveFileAs,
                         fileName,
                         (string)LocalizeDictionary.Instance.GetLocalizedObject("BVEEditor", "StringResources", "Services_FileUtilities_CantSaveFileStandardText", LocalizeDictionary.CurrentCulture),
                         policy);
 }
コード例 #22
0
 public FileOperationResult ObservedLoad(NamedFileOperationDelegate loadFileAsDelegate, string fileName)
 {
     return(ObservedLoad(loadFileAsDelegate, fileName, FileErrorPolicy.Inform));
 }
コード例 #23
0
        public FileOperationResult ObservedLoad(NamedFileOperationDelegate loadFileAsDelegate, string fileName, FileErrorPolicy policy)
        {
            string cantLoadFileStandardText = resourceService.GetString("NetFocus.Services.FileUtilityService.CantLoadFileStandardText");

            return(ObservedLoad(loadFileAsDelegate, fileName, cantLoadFileStandardText, policy));
        }
コード例 #24
0
ファイル: FileUtility.cs プロジェクト: Eisai/pragmasql
 public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
 {
     return(ObservedLoad(new FileOperationDelegate(new LoadWrapper(saveFileAs, fileName).Invoke), fileName, message, policy));
 }
コード例 #25
0
 public LoadWrapper(NamedFileOperationDelegate loadNamedFileDelegate, string fileName)
 {
     this.loadNamedFileDelegate = loadNamedFileDelegate;
     this.fileName = fileName;
 }
コード例 #26
0
		public FileOperationResult ObservedLoad(NamedFileOperationDelegate loadFileAsDelegate, string fileName, FileErrorPolicy policy)
		{
			string cantLoadFileStandardText = resourceService.GetString("NetFocus.Services.FileUtilityService.CantLoadFileStandardText");

			return ObservedLoad(loadFileAsDelegate,fileName,cantLoadFileStandardText,policy);
		}
コード例 #27
0
 public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName)
 {
     return(ObservedLoad(saveFileAs, fileName, FileErrorPolicy.Inform));
 }
コード例 #28
0
		public FileOperationResult ObservedLoad(NamedFileOperationDelegate loadNamedFileDelegate, string fileName, string message, FileErrorPolicy policy)
		{
			LoadWrapper loadWrapper = new LoadWrapper(loadNamedFileDelegate, fileName);
			FileOperationDelegate fileOperationDelegate = new FileOperationDelegate(loadWrapper.Invoke);
			return ObservedLoad(fileOperationDelegate, fileName, message, policy);
		}
コード例 #29
0
ファイル: FileUtility.cs プロジェクト: OmerRaviv/SharpDevelop
		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;
		}
コード例 #30
0
		public FileOperationResult ObservedLoad(NamedFileOperationDelegate loadFileAsDelegate, string fileName)
		{
			return ObservedLoad(loadFileAsDelegate, fileName, FileErrorPolicy.Inform);
		}
コード例 #31
0
ファイル: FileUtility.cs プロジェクト: OmerRaviv/SharpDevelop
		public static FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy = FileErrorPolicy.Inform)
		{
			return ObservedLoad(saveFileAs,
			                    fileName,
			                    ResourceService.GetString("ICSharpCode.Services.FileUtilityService.CantLoadFileStandardText"),
			                    policy);
		}
コード例 #32
0
ファイル: FileUtility.cs プロジェクト: stophun/fdotoolbox
		public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
		{
			System.Diagnostics.Debug.Assert(IsValidFileName(fileName));
			try {
				string directory = Path.GetDirectoryName(fileName);
				if (!Directory.Exists(directory)) {
					Directory.CreateDirectory(directory);
				}
				saveFileAs(fileName);
				OnFileSaved(new FileNameEventArgs(fileName));
				return FileOperationResult.OK;
			} catch (Exception e) {
				switch (policy) {
					case FileErrorPolicy.Inform:
						using (SaveErrorInformDialog informDialog = new SaveErrorInformDialog(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e)) {
							informDialog.ShowDialog();
						}
						break;
					case FileErrorPolicy.ProvideAlternative:
					restartlabel:
						using (SaveErrorChooseDialog chooseDialog = new SaveErrorChooseDialog(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", e, true)) {
							switch (chooseDialog.ShowDialog()) {
								case DialogResult.OK:
									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) {
											return ObservedSave(saveFileAs, fdiag.FileName, message, policy);
										} else {
											goto restartlabel;
										}
									}
								case DialogResult.Retry:
									return ObservedSave(saveFileAs, fileName, message, policy);
								case DialogResult.Ignore:
									return FileOperationResult.Failed;
							}
						}
						break;
				}
			}
			return FileOperationResult.Failed;
		}
コード例 #33
0
 public FileOperationResult ObservedLoad(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
 {
     return ObservedLoad(new FileOperationDelegate(new LoadWrapper(saveFileAs, fileName).Invoke), fileName, message, policy);
 }
コード例 #34
0
ファイル: FileUtility.cs プロジェクト: stophun/fdotoolbox
			public LoadWrapper(NamedFileOperationDelegate loadFile, string fileName)
			{
				this.loadFile = loadFile;
				this.fileName   = fileName;
			}
コード例 #35
0
 public FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, FileErrorPolicy policy)
 {
     return ObservedSave(saveFileAs,
                         fileName,
                         GettextCatalog.GetString ("Unable to save file."),
                         policy);
 }
コード例 #36
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;
 }
コード例 #37
0
 public LoadWrapper(NamedFileOperationDelegate saveFileAs, string fileName)
 {
     this.saveFileAs = saveFileAs;
     this.fileName   = fileName;
 }
コード例 #38
0
        public static FileOperationResult ObservedSave(NamedFileOperationDelegate saveFileAs, string fileName, string message, FileErrorPolicy policy)
        {
            try
            {
                string directoryName = Path.GetDirectoryName(fileName);
                if (!Directory.Exists(directoryName))
                {
                    Directory.CreateDirectory(directoryName);
                }
                saveFileAs(fileName);
                OnFileSaved(new FileNameEventArgs(fileName));
                return FileOperationResult.OK;
            }
            catch (Exception exception)
            {
                switch (policy)
                {
                    case FileErrorPolicy.Inform:
                        using (SaveErrorInformDialog dialog = new SaveErrorInformDialog(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", exception))
                        {
                            dialog.ShowDialog();
                        }
                        goto Label_016F;

                    case FileErrorPolicy.ProvideAlternative:
                        goto Label_0084;

                    default:
                        goto Label_016F;
                }
            Label_0084:
                using (SaveErrorChooseDialog dialog2 = new SaveErrorChooseDialog(fileName, message, "${res:FileUtilityService.ErrorWhileSaving}", exception, true))
                {
                    switch (dialog2.ShowDialog())
                    {
                        case DialogResult.OK:
                        {
                            using (SaveFileDialog dialog3 = new SaveFileDialog())
                            {
                                dialog3.OverwritePrompt = true;
                                dialog3.AddExtension = true;
                                dialog3.CheckFileExists = false;
                                dialog3.CheckPathExists = true;
                                dialog3.Title = "Choose alternate file name";
                                dialog3.FileName = fileName;
                                if (dialog3.ShowDialog() == DialogResult.OK)
                                {
                                    return ObservedSave(saveFileAs, dialog3.FileName, message, policy);
                                }
                                goto Label_0084;
                            }
                        }
                        case DialogResult.Cancel:
                        case DialogResult.Abort:
                            goto Label_016F;

                        case DialogResult.Retry:
                            return ObservedSave(saveFileAs, fileName, message, policy);

                        case DialogResult.Ignore:
                            return FileOperationResult.Failed;
                    }
                    goto Label_016F;
                }
            }
            Label_016F:
            return FileOperationResult.Failed;
        }