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)); } }