Releases: ITHit/UserFileSystemSamples
Releases · ITHit/UserFileSystemSamples
v9.0.29481.0-Beta
- Menu classes are now automatically found and registered using MenuCommand attribute.
- Custom columns configuration moved to appjsettings.json file.
- IFileSystemItem.GetMetadataAsync() and IClientNotifications.GetMetadataAsync() methods added.
- Revit filter provided.
- Autodesk Inventor filter provided.
- Foxit PDF Editor Pro filter provided.
- ZVCAD filter provided.
- EngineWindows.OnItemsProgress() method renamed to OnItemsProgressAsync()
- IncomingPoolingSync.ProcessAsync() can now sync a single item or single folder level in addition to syncing entire entire subtree.
- IFolder.GetChildrenAsync() now passes result about all processed items to ItemsChanged.
- Zero-length files did not synch to the remote storage. This bug is now fixed.
- ICustomData.TryGetValue() throw FileNotFountException exception when deleting items in some scenarios. Now this bug is fixed.
v9.0.27334.0-Beta
- Tray application for Windows is provided in ITHit.FileSystem.Windows.WinUI package.
- Error dialog and Settings dialogs are provided in WebDAV Drive sample for Windows.
- Custom metadata properties refactored. IFileSystemItemMetadata.Properties is now automatically serialized and saved when listing folder content and updating items. You do not need to save each property in EngineWindows.ItemsChanged event any more. IFileSystemItemMetadata.Properties type changed from ICustomData to IPropertiesDictionary.
- ICustomData interface on Windows platform now supports enumeration.
- Results contexts now inherit from IResultContextBase. The IResultContextBase.Result property allows passing the operation result and any additional data to Engine.ItemsChanged event.
- EngineWindows.ItemsProgress event and EngineWindows.OnItemsProgressAsync() method provided, reporting file download and upload progress as well as folder listing progress.
- OnItemsChanged method is now asynchronous and renamed to OnItemsChangedAsync.
- ReturnChildrenAsync() now fires Create event instead of Population even. ReturnChildrenAsync() now returns OperationResult.
- AutoLockFilter extended with notepad.exe, notepad++.exe, wordpad.exe. These applications do not lock files when saving any more, if auto-locking is enabled and AutoLockFilter is used.
- Overloaded method IncomingPoolingSync.ProcessAsync() method provided on Windows platform with parameters specifying synchronization start root and recursiveness.
- SyncService calss now sypports one time synchronization on Windows platform. SyncService.ProcessAsync() method is added.
- OutgoingSync.ProcessAsync() method cancellationToken parameter now has default value on Windows platform.
- List of children items did not pass to population event in ItemsChanged. Now this bug is fixed - list of children is provided.
- ItemsChangeEventArgs.Parent is not set in ItemsChanging and ItemsChanged events fired during ServerNotitications.CreateAsync() call. Now parent is properly set.
- Content eTag and metadata eTag did not save in various scenarios. This bug is now fixed.
v8.5.27248.0
- Engine on Windows now reports upload progress when reading data from stream passed as parameter to IFile.WriteAsync() method. EngineWindows.ItemsChanging and EngineWindows.ItemsChanged events are called.
- Tray application refactored and improved in WebDAV Drive Sample for Windows.
- Auto-locking is now supported in Photoshop. PhotoshopFilter fixed. PhotoshopFilter is now enabled in WebDAV Drive sample and VirtualDrive sample for Windows.
- Engine on Windows making authentication method calls during dehydration. WebDAV Drive on Windows is sending server requests during Dehydration. This bug is now fixed.
v8.5.27224.0
- WebDAV Drive sample on Windows is now running on WinUI 3.
- Tray application with a list of events is provided in WebDAV Drive sample on Windows. Tray application refactored.
- Microsoft Office Word documents comparison implemented. Compare context menu provided.
- Basic and cookies authentication is not saved permanently in WebDAV Drive sample for Windows. The user logged-out on application restart and had to re-login. Now the authentication information is stored if user opted to store the authentication info.
- ItemsChanging and ItemsChanged events now report dehydration. OperationType.Dehydrate operation type added.
- If remote storage item ID was null, the Engine throw exception on Windows. Now this bug is fixed.
- In Virtual Drive sample, auto-locked Microsoft Office document unlocked on lock expiration. Now lock is extended until the document is closed.
- Unlock is not fired in ItemsChaging/ItemsChanged event in WebDAV Drive sample on Windows if auto-unlocked on timeout. Now this bug is fixed.
v8.4.27341.0
- "Aways keep on this device" context menu does not work after latest Windows updates. Hydration did not propagate down the folders tree. This bug is now fixed.
- Samples now run on .NET 9.
- Search by remote storage item ID is refactored. Search Placeholders.FindPathByRemoteStorageIdAsync()/FindByRemoteStorageIdAsync()/TryFindByRemoteStorageId() did not find item if indexing is disabled or item not indexed. Now these methods reliably return item that correspond to the remote storage ID.
- Windows Explorer Refresh button functionality refactored.
- License verification updated to support new bundle licensing.
- Parsing protocol command parameters fixed and refactored in WebDAV Drive sample for Windows.
- Add New Drive dialog fixed in WebDAV Drive sample for Windows.
- FolderInvalidationIntervalMs is not set from config in WebDAV Drive sample for Windows. This bug is now fixed.
- References to Microsoft Office COM interop replaced with package references.
- If a file is locked by third-party user in WebDAV Drive sample for Windows, and the file is read-only, initial folder populating throw exception. Now this bug is fixed.
- IServerCollectionNotifications.ProcessChangesAsync() throwed exception, if file is updated on the server side, unable to save eTag. Now this bug is fixed.
- Logging for incoming operations fixed in WebDAV Drive sample for Windows.
v8.3.27213.0
- WebDAV Drive sample for Windows now runs on MAUI. No development certificate installation is required any more. Sample custom protocol to open, edit, lock and unlock documents from web page implemented. WebDAVDrive Package project removed.
- Automatic locking is now supported for Adobe Acrobat Pro. The PDF file is now locked/unlocked automatically when file is opened/closed if Engie.AutoLock is set to true.
- AutoLockFilter provided on Windows. Now calls from Windows Explorer and search protocol host can be ignored and IFileSystemItem.LockAsync() and IFileSystemItem.UnlockAsync() not called.
- IClientNotifications.ExecuteVerb() method added that can execute a shell verb, such as open, edit, print, openas.
- IClientNotifications.LockAsync(), IClientNotifications.UnlockAsync() failed if folders in item path were not populated. Now these methods populate folders in item path automatically prior executing the commend.
- Remote storage item ID (IOperationContext.RemoteStorageItemId) was null in operation context in IFileSystemItem.LockAsync(), IFileSystemItem.UnlockAsync(), IFile.WriteAsync() when saving Microsoft Office, documents, AutoCAD caocuments and during outgoing synchronization execution. This bug s now fixed.
- ICustomDataWindows moved from ITHit.FileSystem.Windows.ExternalDataManager to ITHit.FileSystem.Windows namespace.
- IStorageProviderCopyHook moved from ITHit.FileSystem.Windows.ShellExtension.Interop to ITHit.FileSystem.Windows.ShellExtension.
v8.2.27026.0
- The Refresh button in Windows Explorer can now be used to refresh folder content if server push synchronization is disabled. EngineWindows.FolderInvalidationIntervalMs property is provided to set folder invalidation period for this purpose.
- ItemsChanging even is provided on Windows platform. The new event fires before every call of Engine interface methods.
- Multiple changes in ItemsChanged event on Windows platform: ItemChangedEventHandler renamed to ItemsChangeEventHandler. ItemsChangeEventArgs.Parent property added, containing the parent item data during population and creation events. ItemChangeEventType is renamed to NotificationTime and moved from ITHit.FileSystem.Windows to ITHit.FileSystem. ChangeEventItem moved from ITHit.FileSystem.Windows to ITHit.FileSystem. IItemsChange.Source property provided, indicating if the operation was initiated by the client or by the remote storage.
- Authentication methods provided on Windows platform: IEngine.IsAuthenticatedAsync() and EngineWindows.AuthenticateAsync() methods. The new methods are now called before every Engine method.
- Synchronization modes implementation refactored in WebDAV Drive sample for Windows. IncomingSyncMode in can now be Off, SyncId, CRUD, TimerPooling, Auto.
- ITransferDataResultContext.ReturnData() renamed to ReturnDataAsync() and is now asynchronous.
- The Microsoft Office documents on Windows platform in WebDAV Drive sample are now automatically unlocked if the lock file (owner file) is not found during lock refresh.
- Search by remote storage item ID did not work when receiving notifications from remote storage on non-English Windows platforms. This bug is now fixed.
- In WebDAV Drive sample on Windows platform notifications from server about folder being moved and the target folder being offline or the folder being updated received via remote storage monitor were filtered and did not reflect in user file system. This bug is now fixed.
- On Windows platform if an error was reported using IResultContext.ReportStatus() method call during IFile.ReadAsync() or IFolder.getChildrenAsync() call the Engine erroneously reported successful result in the Engine.ItemsChanged event. Now the unsuccessful result is properly reported.
- ShellExtensionsComServerExePath and ShellExtensionsComServerRpcEnabled settings removed from WebDAV Drive sample.
v8.1.26901.0
- Metadata eTag received from remote storage is now set for every file system item in WebDAV Drive sample on Windows platform.
- IFileMetadata now passed into IFile.ReadAsync() method.
- On Windows platform if file is dehydrated and file content changes received from remote storage in GetChangesAsync(), ItemsChanged event is not fired and Windows Explorer is not updated. Now the event is fired for dehydrated files and Windows Explorer is updated properly.
- Development certificate in samples is updated on Windows platform.
- On Windows platform move after creation may cause two concurrent IFolder.CreateFolderAsync() calls. Now creation blocks any other calls until creation is completed.
- LocalServer class is replaced with LocalServerIntegarated and LocalServerRpc classes for Windows platform.
- Custom remote storage ID column is added in WebDAV Drive sample on Windows platform.
- On Windows platform tray application context menu does not work in samples. Now this bug is fixed.
- Remote storage monitor in Virtual File System sample and Virtual Drive sample on Windows platform throw exception when folder was deleted when application was not running, on application start. Now this bug is fixed.
- Exception during incoming synchronization on Windows platform when the folder is deleted on the client when the app is not running, during the app start: FileNotFoundException: The system cannot find the file specified. (0x80070002). This bug is now fixed.
v8.1.26791.0-Beta2
- Exception WebDAVFileProviderExtension "Microsoft.macOS: Failed to initialize the VM" on macOS 14.4 and later. This bug is now fixed.
- The Win32LastModifiedTime custom WebDAV property did not serialize correctly on-English macOS. The IT Hit WebDAV Server samples are throwing FormatException "String '' was not recognized as a valid DateTime." This bug is now fixed.
- Cookies authentication is now supported in WebDAV Drive sample on macOS in host application.
- Remote storage monitor connected only to the first storage in WebDAV Drive sample for macOS if more than one drive was mounted. This bug is now fixed.
v8.1.26727.0-Beta2
- WebDAV Drive sample on macOS now supports cookies authentication.
- WebDAV Drive sample on macOS now provides custom protocol "fuse:" implementation.
- All Windows platform samples now run on .NET 8.
- Challenge-response authentication dialog (Basic, Digest, NTLM, Kerberos) is replaced with system authentication dialog in WebDAV Drive sample on Windows platform.
- On Windows platform the IFileSystemItem.GetPropertiesAsync() and IFileSystemItem.GetThumbnailAsync() were called only if remote storage ID was set for the item. Now these methods are called for any item.
- On Windows platform if the IFileSystemItem.GetPropertiesAsync() is called before the Engine is has started, the ArgumentNullException is thrown. Now the IFileSystemItem.GetPropertiesAsync() is never called before the Engine start.
- In WebDAV Drive sample on Windows if web sockets failed to connect, the client was trying to reconnect to server infinitely. Now web sockets try to re-connnect only if first connection was successful. Otherwise RemoteStorageMonitorBase.StartAsync() throws exception. If SyncID or CRUDE web sockets are not supported, the timer pooling is used now in WebDAV Drive sample.
- If remote storage did not support resource-id property on the root item, the WebDAV Drive sample was throwing WebDavException "resource-id or parent-resource-id is not found. Your WebDAV server does not support collection synchronization. Upgrade your .NET WebDAV server to v13.2 or Java WebDAV server to v6.2 or later version." On sample start. Now if resource-id is not supported on the root item, the sample runs with CRUDE remote storage monitor or timer pooling.
- In WebDAV Drive sample for Windows, if remote storage did not return resource-id on files and folders creation exception was thrown. Now this bug is fixed.
- PreferredIncomingSyncMode is added to the WebDAV Drive settings on Windows platform. Allowed values are: SyncId, Disabled, TimerPooling.
- In Windows platform samples if any file is read-only, unmounting failed. The read-only attribute is now removed during unmounting.