Toplu indirme ve Eklenti Güncellemesi
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user