Commit Graph
38 Commits
Author SHA1 Message Date
Kenneth Skovhede 7031bc57b6 Adding ConfigureAwait(false) to all async enumerations 2025-02-18 09:18:36 +01:00
Kenneth SkovhedeandGitHub d99f74ed94 Rewrite the backend manager. (#5896)
* Rewrite the backend manager.

This creates a new more logic backend manager that handles all backend operations.

For each top-level operation, there is now a single backend manager instance that is passed to sub-commands.

The internals of the backend manager are now rewritten to use async logic instead of threading.

The design uses a single task runner that dispatches operations and honors concurrent settings and limits from one place.

The logic for each operation has been moved into a separate files/classes to make it easier to understand each operation.

This fixes #5804

* Fixed a few issues with not awaiting tasks

* Fixed not creating empty databases

* Fixed an issue with hashes not being recorded on download

* Reworked the download logic to avoid attempting to decrypt the file if it has been modified.

* Review fixes

* Renamed db collector to better reflect the purpose.

* Review fixes
2025-01-28 08:54:50 +01:00
Kenneth SkovhedeandGitHub 9464caf622 Feature/update license 2025 (#5851)
* Fixed some minor whitespace issues

* Updated all copyright to 2025
2025-01-07 09:40:39 +01:00
Kenneth SkovhedeandGitHub ff1b2b7990 Simplified task control (#5753)
* Simplified task control by having all logic in a single class and using async control mechanism
* Fixed the tests
* Made the marking of a backup partial explicitly communicated if the enumeration process is stopped.
* Added support for pausing active transfers
* Introduced transfer token to abort operations.
* Updated the way LiveControl is emitting events.
* Retains the paused state of the server across reboots, this fixes #5760.
* Reworked the way throttle speeds are propagated through LiveControls.
* Added option to pause transfers in the UI.
* Removed throttle settings from the LiveControls class so it is exclusively handled by the ApplicationSettings.
* Removed `thread-priority` as it does not work at all when tasks are used.
* Fixed the stop dialog and API to only support stop and abort.
* Removed unused variables
2024-12-18 08:27:59 +01:00
Suguru Hirahara ae57dee0f0 Remove redundant space characters from *.cs and *.html 2024-07-26 00:10:31 -04:00
Kenneth Skovhede 40dd3c6816 Updated all license mentions to MIT 2024-02-28 15:45:30 +01:00
Kenneth Hsu fa3ffb7540 Add comment to explain download of dlist files during direct restore. 2019-11-28 20:16:57 -08:00
Kenneth Hsu 8ab64071f0 Display correct backup type when using direct restore.
Previously, all filesets would be displayed as partial.  Now, we obtain
the partial/full type from the fileset file (not the fileset.json) file
in the dlist file.  If this file does not exist, the backup type
defaults fo full.

Note that this requires downloading and uncompressing the dlist file, so
performance of populating the restore list may be impacted
significantly.

This concerns issue #3982.
2019-11-20 20:23:48 -08:00
Kenneth Hsu afab61a05b Use pattern matching to simplify casts. 2019-10-19 10:15:38 -07:00
Kenneth Hsu 5e9dd9a7b8 Expose BackupType to test classes. 2019-09-17 12:46:23 -07:00
BlueBlock 5c11ad4beb use reference 2019-08-31 14:44:12 -04:00
BlueBlock b444d4bdf7 remove unused variable 2019-08-23 10:53:26 -04:00
BlueBlock 08e2c18185 add handling of a partial backup
- add backup state to DB table 'fileset' (job database upgrade to version 10)
- modify the Restore page dropdown to display if a backup is "partial"
- modify retention logic to remove partial backups only when the next recent full-backup has been removed
2019-08-05 20:14:05 -04:00
Kenneth Hsu f12858e6a5 Mark fields that shouldn't be reassigned as readonly.
This makes it explicit at compile-time that these fields should not be
reassigned outside the constructor.
2018-05-25 10:04:52 -07:00
Kenneth Skovhede 842fd96543 Implemented a new logging system that is more transparent and allows a more granular way of picking log messages.
Added ID's to each log message and each exception to allow later introduction of a Knowledgebase service that explains each error in more detail.
2018-03-15 09:12:34 +01:00
Kenneth Skovhede fe96e3a021 Rewrote the logic to check the full filter and not just the commandline arguments when guessing which kind of list to return. 2017-04-06 11:54:22 +02:00
Kenneth Skovhede a029890409 Implemented better default error messsages 2017-01-09 11:35:38 +01:00
Kenneth Skovhede 0c68daff6c Fixed all whitespace to be 4 spaces instead of tabs 2016-09-15 11:39:27 +02:00
Kenneth Skovhede 02423b5a46 Added additional logic for getting the backup path prefixes on multi-drive backups in Windows.
This fixes #1672.
This fixes #1527.
2016-04-19 10:04:22 +02:00
Kenneth Skovhede 742eab0913 Fixed multiple cases where connections and command instances were not disposed.
This should fix all cases of "File is locked" on windows.
2016-04-06 20:40:34 +02:00
Kenneth Skovhede 38ef186201 Implemented error message if user attempts to restore from an encrypted store without a passphrase. 2016-02-10 17:18:48 +01:00
Kenneth Skovhede 492386c1fa Fixed a minor issue where the size of the file being downloaded was not shown correct 2015-09-15 19:30:37 +02:00
Kenneth Skovhede f59eca060d Implemented a fast method for listing filesets, where no sizes are calculated 2014-08-19 20:26:21 +02:00
Kenneth Skovhede bd53090ae7 Implemented the pause/resume/stop/start methods throughout the calls to allow for interactive control over the tasks 2014-05-15 12:47:16 +02:00
Kenneth Skovhede d4ecaa7437 Fixed listing files on Windows as well (empty start prefix) 2014-03-21 19:23:54 +01:00
Kenneth Skovhede f261bc8034 Added support for listing files-n-folders within a backup.
Added improved browsing to the restore dialog
2014-03-21 15:01:49 +01:00
Kenneth Skovhede 63da23f7f9 Added list largest prefix to ListFiles command 2014-03-15 01:03:15 +01:00
Kenneth Skovhede b69cdcb136 Fixed filters to include everything if empty.
Will now include by default if there are only exclude filters.
If there are any include filters, the files are excluded by default.
2013-06-30 12:42:13 +02:00
Kenneth Skovhede 2bf912a0af Rewrote the filter system to distinguish between match and result, which allows filter combinations 2013-06-29 12:16:30 +02:00
Kenneth Skovhede b19eaacbd7 Implented ListControlFiles and added file count and file size to the normal list output 2013-05-30 21:54:43 +02:00
Kenneth Skovhede d696670598 Reworked the result reporting to support type safe values 2013-05-25 16:40:15 +02:00
Kenneth Skovhede b11bf5dac0 Extracted some common result properties to a common interface 2013-05-19 18:27:51 +02:00
Kenneth Skovhede c29d9d00b9 Implemented the backup command.
Rewrote filter handling across the entire project.
2013-05-13 22:32:05 +02:00
Kenneth Skovhede 3b70f99722 Implemented the new delete command and removed some more unused code 2013-05-11 22:56:21 +02:00
Kenneth Skovhede 4d49af71de Bugfixes and simplifications to the list command and CLI interface 2013-05-11 13:04:01 +02:00
Kenneth Skovhede 524d096d5b Added the new LIST command 2013-05-11 12:03:15 +02:00
Kenneth Skovhede 23744d8915 More refactoring and cleanup 2013-05-08 21:29:59 +02:00
Kenneth Skovhede 8f704d9445 Moved stuff around and dropped the ForestHash namespace 2013-05-08 20:17:07 +02:00