Toplu indirme ve Eklenti Güncellemesi

This commit is contained in:
hOLOlu
2026-05-09 11:33:53 +03:00
parent 729879c693
commit 75bd47c052
349 changed files with 5292 additions and 401 deletions

View File

@@ -0,0 +1,86 @@
using ModernWpf.Controls;
using DownloadManager.Core.Services;
using DownloadManager.Core.Models;
using System.Windows;
using System.Linq;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
namespace DownloadManager.WPF.Views.Dialogs;
public partial class CategoryManagerDialog : ContentDialog
{
private readonly ICategoryService _categoryService;
private ObservableCollection<DownloadCategory> _categories = new();
public CategoryManagerDialog(ICategoryService categoryService)
{
InitializeComponent();
_categoryService = categoryService;
CategoryList.ItemsSource = _categories;
_ = LoadCategoriesAsync();
}
private async Task LoadCategoriesAsync()
{
_categories.Clear();
var items = await _categoryService.GetCategoriesAsync();
foreach (var item in items)
{
_categories.Add(item);
}
}
private void CategoryList_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
if (CategoryList.SelectedItem is DownloadCategory selected)
{
NameBox.Text = selected.Name;
ExtensionsBox.Text = selected.Extensions;
UpdateBtn.IsEnabled = true;
DeleteBtn.IsEnabled = true;
}
else
{
NameBox.Text = "";
ExtensionsBox.Text = "";
UpdateBtn.IsEnabled = false;
DeleteBtn.IsEnabled = false;
}
}
private async void AddButton_Click(object sender, RoutedEventArgs e)
{
if (string.IsNullOrWhiteSpace(NameBox.Text)) return;
var cat = new DownloadCategory
{
Name = NameBox.Text,
Extensions = ExtensionsBox.Text,
SavePath = "" // Varsayılanı boş bırakıyoruz
};
await _categoryService.AddCategoryAsync(cat);
await LoadCategoriesAsync();
CategoryList.SelectedItem = _categories.FirstOrDefault(c => c.Name == cat.Name);
}
private async void UpdateButton_Click(object sender, RoutedEventArgs e)
{
if (CategoryList.SelectedItem is DownloadCategory selected && !string.IsNullOrWhiteSpace(NameBox.Text))
{
selected.Name = NameBox.Text;
selected.Extensions = ExtensionsBox.Text;
await _categoryService.UpdateCategoryAsync(selected);
await LoadCategoriesAsync();
CategoryList.SelectedItem = _categories.FirstOrDefault(c => c.Id == selected.Id);
}
}
private async void DeleteButton_Click(object sender, RoutedEventArgs e)
{
if (CategoryList.SelectedItem is DownloadCategory selected)
{
await _categoryService.DeleteCategoryAsync(selected.Id);
await LoadCategoriesAsync();
}
}
}