using System; using System.Linq; using Microsoft.Maui.Controls; using System.Collections.Generic; using System.Formats.Tar; namespace MauiApp1 { public partial class MainPage : ContentPage { private DatabaseService _db = new DatabaseService(); private Book _selectedBook; public MainPage() { InitializeComponent(); } protected override async void OnAppearing() { base.OnAppearing(); await LoadBooks(); } private async Task LoadBooks() { var books = await _db.GetBooksAsync(); BooksList.ItemsSource = books; } private async void OnSaveClicked(object sender, EventArgs e) { string title = TitleEntry.Text?.Trim(); string author = AuthorEntry.Text?.Trim(); int.TryParse(YearEntry.Text, out int year); if (string.IsNullOrWhiteSpace(title)) { await DisplayAlert("Błąd", "Podaj tytuł książki.", "OK"); return; } if (_selectedBook == null) { var newBook = new Book { Title = title, Author = author, Year = year }; await _db.AddBookAsync(newBook); } else { _selectedBook.Title = title; _selectedBook.Author = author; _selectedBook.Year = year; await _db.UpdateBookAsync(_selectedBook); _selectedBook = null; } await LoadBooks(); ClearForm(); } private void OnClearClicked(object sender, EventArgs e) { _selectedBook = null; ClearForm(); } private void ClearForm() { TitleEntry.Text = ""; AuthorEntry.Text = ""; YearEntry.Text = ""; } private void BooksList_SelectionChanged(object sender, SelectionChangedEventArgs e) { _selectedBook = e.CurrentSelection.FirstOrDefault() as Book; if (_selectedBook != null) { TitleEntry.Text = _selectedBook.Title; AuthorEntry.Text = _selectedBook.Author; YearEntry.Text = _selectedBook.Year.ToString(); } } private async void OnDeleteClicked(object sender, EventArgs e) { var button = sender as Button; var book = button?.CommandParameter as Book; if (book == null) return; bool confirm = await DisplayAlert("Potwierdzenie", $"Usunąć książkę '{book.Title}'?", "Tak", "Nie"); if (confirm) { await _db.DeleteBookAsync(book); await LoadBooks(); } } } }