Refactored and enhanced the DownloadManager application with significant updates across multiple files. Key changes include:
- **App.xaml.cs**: Re-added necessary imports, updated service registrations, and made `OnStartup` asynchronous.
- **DownloadManager.csproj**: Updated target framework, application icon, and added assembly version.
- **DownloadManager.sln**: Updated project format and added configurations for multiple platforms.
- **DownloadManagerService.cs**: Added `HistoryStorageService` dependency, introduced `Initial` method, and improved task management.
- **DownloadWorker.cs**: Enhanced error handling and changed `StartDownloadAsync` to `StartDownload`.
- **ViewModels**: Refactored to use dependency injection, updated task initialization, and added new commands for settings management.
- **UI Updates**: Improved `DownloadingPage.xaml` and `WaitingPage.xaml` with `ListView` and added headers. Restructured `SettingsPage.xaml` for better organization and added new settings options.
- **MainWindow**: Enhanced navigation and applied user-defined themes and backdrops.
- **New Files**: Added `HistoryStorageService.cs`, `ThemeToIndexConverter.cs`, `CompletedItemData.cs`, `Settings.Designer.cs`, `Settings.settings`, `Constants.cs`, `CompletedPageViewModel.cs`, `CompletedPage.xaml`, and `CompletedPage.xaml.cs` to support new features and improvements.
These changes aim to improve the application's robustness, maintainability, and user experience.
- Added new services: IContentDialogService, ISnackbarService
- Replaced DashboardPage and DashboardViewModel with DownloadingPage, DownloadingPageViewModel, WaitingPage, and WaitingPageViewModel
- Introduced AddNewTaskPage and AddNewTaskViewModel
- Replaced DownloadServiceManger with DownloadManagerService
- Updated WPF-UI package to 3.0.4 and added HtmlAgilityPack 1.11.61
- Refactored DownloadWorker to use async methods and added retry logic
- Converted DownloadItemData to partial class with ObservableProperty attributes
- Changed initial navigation page to DownloadingPage
- Updated MainWindow navigation items and title
- Added new utility classes: DoubleUtilities, MD5Utilities, StringExtension
- Added new XAML pages and ViewModels for task management and display
- Removed obsolete DashboardPage and related files