/// <summary> /// Audits a request for the file system's root folder. /// </summary> public static void AuditRootFolderRequest(this IAuditor auditor, IVirtualFolderItem rootFolder) { if (!auditor.IsInfoEnabledFor(FileSystemTask.RootFolderInfoRequest)) { return; } const string msg = "File system root requested."; auditor.Audit(AuditLevel.Info, FileSystemTask.RootFolderInfoRequest, AuditEvent.FolderInfoRequested, msg); }
/// <summary> /// Audits a request for a given file's meta data (e.g. through <see cref="IFileSystemProvider.GetFileInfo"/>. /// Be aware that this might cause verbose audit trails. /// </summary> public static void AuditFileInfoRequest(this IAuditor auditor, FileSystemTask context, IVirtualFileItem file) { if (!auditor.IsInfoEnabledFor(context)) { return; } string msg = String.Format("File information requested:\n{0}", file.CreateResourceInfoString()); auditor.Audit(AuditLevel.Info, context, AuditEvent.FileInfoRequested, msg); }
/// <summary> /// Audits an invalid request to pause a transfer although the transfer is not active. /// </summary> public static void AuditChangedTransferStatus(this IAuditor auditor, ITransfer transfer, FileSystemTask context, AuditEvent eventId) { if (!auditor.IsInfoEnabledFor(context)) { return; } string msg = "Transfer [{0}] for resource [{1}] changed status to [{2}]."; msg = String.Format(msg, transfer.Token.TransferId, transfer.Token.ResourceIdentifier, transfer.Status); auditor.Audit(AuditLevel.Info, context, eventId, msg); }
/// <summary> /// Audits a successful file system operation that involves a source and a target resource (move / copy). /// </summary> public static void AuditResourceOperation <T>(this IAuditor auditor, FileSystemTask context, AuditEvent eventId, IVirtualResourceItem <T> sourceFolder, IVirtualResourceItem <T> targetFolder) where T : VirtualResourceInfo { if (!auditor.IsInfoEnabledFor(context)) { return; } string msg = String.Format("Successfully performed file system operation '{0}'.\n\nSource:\n{1}\n\nTarget:\n{2}", context, sourceFolder.CreateResourceInfoString(), targetFolder.CreateResourceInfoString()); auditor.Audit(AuditLevel.Info, context, eventId, msg); }
/// <summary> /// Audits a successful file system operation for a given resource. /// </summary> public static void AuditResourceOperation <T>(this IAuditor auditor, FileSystemTask context, AuditEvent eventId, IVirtualResourceItem <T> resource) where T : VirtualResourceInfo { if (!auditor.IsInfoEnabledFor(context)) { return; } string msg = String.Format("Successfully performed file system operation '{0}' for resource [{1}].\n\n{2}", context, resource.ResourceInfo.Name, resource.CreateResourceInfoString()); auditor.Audit(AuditLevel.Info, context, eventId, msg); }
/// <summary> /// Audits a check for file or folder availability along with the returned result. /// </summary> public static void AuditResourceAvailabilityCheck(this IAuditor auditor, FileSystemTask context, string resourcePath, bool isAvailable) { if (!auditor.IsInfoEnabledFor(context)) { return; } string msg = "Checked availability of resource (file or folder) [{0}]. Available: {1}."; msg = String.Format(msg, resourcePath, isAvailable); auditor.Audit(AuditLevel.Info, context, AuditEvent.FileInfoRequested, msg); }
/// <summary> /// Audits a request for a folder's files and sub folders. /// </summary> public static void AuditFolderContentsRequest(this IAuditor auditor, FileSystemTask context, IVirtualFolderItem parentFolder) { if (!auditor.IsInfoEnabledFor(context)) { return; } string msg = "Delivered contents of folder [{0}]. Folder details:\n\n{1}"; msg = String.Format(msg, parentFolder.ResourceInfo.Name, parentFolder.CreateResourceInfoString()); auditor.Audit(AuditLevel.Info, context, AuditEvent.FolderContentsRequested, msg); }
/// <summary> /// Audits that a folder was created on the file system. /// </summary> public static void AuditFolderCreation(this IAuditor auditor, IVirtualFolderItem folder) { const FileSystemTask context = FileSystemTask.FolderCreateRequest; if (!auditor.IsInfoEnabledFor(context)) { return; } string msg = "Created folder [{0}] on the file system.\n\n{1}"; msg = String.Format(msg, folder.ResourceInfo.Name, folder.CreateResourceInfoString()); auditor.Audit(AuditLevel.Info, context, AuditEvent.FolderCreated, msg); }
/// <summary> /// Audits a request for the file system's root folder. /// </summary> public static void AuditFolderParentRequest(this IAuditor auditor, IVirtualFolderItem childFolder, IVirtualFolderItem parentFolder) { if (!auditor.IsInfoEnabledFor(FileSystemTask.FolderParentRequest)) { return; } string msg = "Parent folder of folder [{0}] was requested.\nSubmitted folder:\n{1}\n\nParent folder:\n{2}"; msg = String.Format(msg, childFolder.ResourceInfo.Name, childFolder.CreateResourceInfoString(), parentFolder.CreateResourceInfoString()); auditor.Audit(AuditLevel.Info, FileSystemTask.FolderParentRequest, AuditEvent.FolderInfoRequested, msg); }