Logging improvements
Modified loggers to use their enclosing classActivated lossy logging of the last 30 messages before an errorFixes #1799
Fixed loop limit bug in Task.TryRemove for the ObservableConcurrentCollection.Fixes #2131
Modified FileSystemWatcherAdapter.cs to raise create events for all child objects under a new folderFixes #2120
Replaced BlockingCollection in Agents/Agent.cs with AsyncProducerConsumerCollection, to reduce locking and avoid exceptionswhen an agent stops (e.g. when a FileAgent stops because an account is removed).Cleanup of several related files
Fixes #1785
Fix #2121, manual changes to the API Key were not passed to the appropriate PithosMonitor objectGeneral cleanup
Modified Selective Sync behavior to mark the files in the unselected paths as Unversioned, instead of removing them.Resolves #2112
Simplified snapshot comparisons usind dictionaries
Modified differencer to compare UUIDs instead of URLs
Added modifications for move detection. Resolves #1999, #1891
Replaced auto reauthorization with a message that asks the user to renew the api key.Modified the account page of Preferences to display warnings for expired accounts
Removed old code that used MD5 for small filesCloses 2096
Further simplified state initialization
Replaced lists with arrays in State to make the state class read-only
SyncFiles method modified to detect conflicts as per #2096
Modified Differencer to set the PreviousHash value for Common objectsExtracted Current,Previous fields to nested State class to make Post exception safe and use a more functional style
Added manual token refresh button to account page. Closes #2095Modified check for interrupted files to raise notification only if there are actual interrupted files. Closes #2081
Fixes to create the proper filepaths from URLs
Fixed to polling and differencing
Modified SnapshotDifferencer to detect NoModificationInfo entries.NoModificationInfo entries are replaced by matching entries from the previous snapshot.
Synch seems OK. Identified problem with poll differencer
File and polling filtering work properly
Converted message arrays to Uri arrays
Added code to facilitate retrieval of server folders
GetFileAgent moved to FileAgent.cs
Renamed PauseEvent to ProceedEvent
Extracted polling functionality to a separate PollAgent.csThe PollAgent pauses polling while network operations are in progressModified deleted file processing to ignore files in the Trash folder.
Modifications to raise move events for moved child objects from the FileAgent
Added header to all files. Closes #2064
Moved the pithos.db location to the same location as the user settings. This will make cleanup of all user settings easier during uninstallation
Changed AsyncManualResetEvent.Set behaviour to occur asynchronously. In the previous version calling Set resulted in the poll method executing in the main thread
Replaced _differencers Dictionary with ConcurrentDictionary
Simplified proxy management code
Extracted cloud delete functionality to a separate DeleteAgent
Added AsyncManualResetEvent to control manual synchronization
Replace manual reset event with asynch reset event for pausing the up/download agent
Simplified SnapshotDifferencer.cs
Added SnapshotDifferencer.cs to calculate the difference between the current and previous listings of the server filesChanged hashing to use an ActionBlock with parallelism options.Added parallelism property in Preferences
Added differencer and tests
Preliminary fix for #1999, incorrect deletionsThe first attempt is to detect deletions AFTER the first poll by comparing a cached listing to the new listing. Missing files are deletes. Can be expanded to simplify the rest of the processing code as it can also yield new files and modified files (same path, higher versions or different lengths or hashes)
Added _lastSeen dictionary to use as log of files, in an attempt to prevent deletion of files that are still being uploaded, or have finished uploading after a poll but before processing of deleted files start
Added check for queued or active objects when checking for files to delete
Merge branch 'master' of \\\pk2010\Pithos\
Conflicts: trunk/Pithos.Client.WPF/Shell/BalloonIconConverter.cs
Changing the delete agent to handle renames as well didn't help. Renames or moves will fail if the file being renamed hasn't been uploaded yet (e.g. the first time a file is created in Windows Explorer).
Added a further delay in deleting missing files instead, in NetworkAgent.cs.
First attempt to allow shared file modifications
Changed notifications according to #1970, #1973Now showing balloon tip only for the first actual change after a pollAll other changes simply update the iconsResolves #1970, #1973
Changed notifications according to #1970, #1973Throw appropriate exception when Pithos.Client.WPF/PithosAccount.cs fails to retrieve credentials (Pointless maybe ?)Returning empty hash for missing files
Dead code cleanups and removal of unwanted dll references
Modifications to allow synchronization of shared files:- Ensure shared files are stored in the proper local directory- Ensure only writable files are uploaded- Filter file events for the shared folder and the accounts and containers in it- Change PutWithHashMap to account for a modified server content (proper json instead of hashes per line)
Reactivated shared object code
Added separate notification classNow raising notifications when polling starts, when conflicts are detected, when changes are detected
Added a DeletedIconOverlay.csAdded synch status in the file propertiesModified the splash screen to use the out-of-the-box splash functionality of WPFIn NetworkAgent.cs, moved the delay call at the end of each poll. Waiting at the start of each poll is inappropriate when the polling frequency is large
Added notification messages for conflicts and multifile operations on Pithos.Core/PithosMonitor.csAdded simple status display for conflict and multifile operations in ShellViewModel.csAdded Conflict file statusModified NetworkAgent.cs to mark local-only files as "in conflict" during the first poll and delete any non-conflict local-only files on subsequent runs. Closes #1466, #1931
"Other" tab in File options was removed. Closes #1930Proxy settings set to UseDefaultProxy. Added Check in App.xaml.cs to reset the proxy to UseDefaultProxy if the ProxyServer setting is empty when ManualProxy is set. Closes #1929
Fix for deleting local objects that don't exist in Pithos
Added code to delete/move child objects
Added check for startup optionAdded Okeanos folder creation
Changed proxy settings to request update if the proxy requires authentication
Added Polling interval property and setting
First change attempt for deletion
Added FileSystemWatcherAdapter.cs to raise Moved events from the sequence of Deleted, Created events raised by FileSystemWatcher.Modified PreferencesViewModel.cs to URLEncode the token when opening the Pithos site
Missing change to ManualResetEventSlim
Replaces AutoResetEvent with manual reset event
Added AutoResetEvent to pause processing of network actions while executing deletes
Modifications to delete folder contents
Changes to delete check order
Further changes to reduce locking and switch to WAL journal mode for SQLiteAlso added dictionary with deleted files with dates to filter upload/download of deleted files.Should probably add a deletion check when commiting downloaded files
Minor fixes and preparing to move
Convert ActiveRecord update code to direct ADO calls to reduce locks
Changes for directoriesAdded copyright notices
Added directory object creation whenever a new directory is createdShowing the file property dialog box for directories
Added OS Version check to disable network connectivity detection in Windows XP
Simplified several functions by replacing task continuations with async/await
Replaced object load and update with direct HQL execution to resolve database locks, especially in StatusAgent.cs and FileState.csRemoved dead code in StatusAgent.cs
Removed Dataflow code
Changes to NHibernate/Activerecord storage code
Some warning fixes and change of some agents from a hand-coded Agent to Dataflow blocks
Now closing web request immediatelly after executing a request that has no content.Fixed content logging that improperly disposed the response stream in RestClient.cs
Fixed frequent timeout by always closing WebResponse objects
Modified iconFixed account SiteUri
Fixed settings save that was disabled due to the addition of a Uri propertyRemoved "IsPithos" property from UI and classesUsing default token 0007 for feedback
Added wizard page
Removed unneeded registry key. Resolves #1690Container properties dialog displays policies, updates tags. Closes #1564File and Container properties dialogs are now asynchronous. Closes #1691Added Context menu registry settings to setup. Closes #1574
Tags, Permissions, Public for Files are working
Moved SQLite dlls to separate 32/64 folders in LibrariesCreated separate target platforms for 32/64 bitsCreated separate setup packages for 32/64 bits
Added x86 setup project
Added Permissions, TagsChanged all task iterators to Async
Added Async CTP
Added File/Container properties windowsAdded ShowProperties commandContainer properties menu doesn't appear,even though the properties workProblem with automatic authentication
First version of File Properties window. Works with random file
Added json serialization of permissions in PermissionConverter.csAdded json serialization of Pithos version timestamp dates in PithosDateTimeConverter.csReplaced redundant ObjectInfo properties with Json named attributes
Build intentionally left broken, moving code to another machine....
Changed folder structure
Renamed Others to others-sharedAdded account name to container infoNow creating Pithos and containers folders, except Trash
Merge branch 'master' of https://code.grnet.gr/git/pithos-ms-client
Renamed Fragments to Cache
Fix to current account behavior in Preferences/PreferencesView.xaml
Modified Upload to always use block uploading. Need cleanup of dead code
Fixes to Add/Remove accounts
Added usage and "Go To Site" menus per account
Fixed uploads of shared files. Added check for unauthorized additions to "others" folder