using System.ComponentModel;
using System.Linq;
using System.Windows;
using Elwig.Documents;
using Elwig.Helpers;

namespace Elwig.Windows {
    public partial class MainWindow : Window {

        public MainWindow() {
            InitializeComponent();
        }

        private void Window_Loaded(object sender, RoutedEventArgs evt) {
            PdfButton.IsEnabled = App.IsPrintingReady;
        }

        private void MemberAdminButton_Click(object sender, RoutedEventArgs evt) {
            var w = new MemberAdminWindow();
            w.Show();
        }

        private void MemberListButton_Click(object sender, RoutedEventArgs evt) {
            var w = new MemberListWindow();
            w.Show();
        }

        private void ReceiptButton_Click(object sender, RoutedEventArgs evt) {
            var w = new DeliveryAdminWindow(true);
            w.Show();
        }

        private void DeliveryAdminButton_Click(object sender, RoutedEventArgs evt) {
            var w = new DeliveryAdminWindow();
            w.Show();
        }

        private void DeliveryListButton_Click(object sender, RoutedEventArgs evt) {
            // TODO
        }

        private void PdfButton_Click(object sender, RoutedEventArgs evt) {
            Utils.RunBackground("PDF Generation", async () => {
                using var ctx = new AppDbContext();
                using var doc = new DeliveryNote(ctx.Deliveries.OrderBy(d => d.Parts.Count).ThenBy(d => d.Year).ThenBy(d => d.DId).Last());
                await doc.Generate();
                doc.Show();
            });
        }

        private void TestWindowButton_Click(object sender, RoutedEventArgs evt) {
            var w = new TestWindow();
            w.Show();
        }

        private void QueryWindowButton_Click(object sender, RoutedEventArgs evt) {
            var w = new QueryWindow();
            w.Show();
        }
    }
}