using Avalonia.Controls; using Avalonia.Markup.Xaml; using Lagerprogramm.Models; using Lagerprogramm.ViewModels; using Avalonia; using System.Threading.Tasks; namespace Lagerprogramm.Views; public partial class AdditionsView : UserControl { public AdditionsView() { InitializeComponent(); } private AdditionsViewModel? ViewModel => DataContext as AdditionsViewModel; private async void OnSearchPart(object? sender, Avalonia.Interactivity.RoutedEventArgs e) { if (ViewModel is null) return; var button = sender as Button; var line = button?.CommandParameter as TransactionLine; if (line is null) return; var window = TopLevel.GetTopLevel(this) as Window; if (window is null) return; var dialog = new PartSearchDialog(); var selectedPart = await dialog.ShowPartSearch(ViewModel.AppData.Parts, window); if (selectedPart is not null) line.PartInternalNumber = selectedPart.InternalPartNumber; } private async void OnSearchAddition(object? sender, Avalonia.Interactivity.RoutedEventArgs e) { if (ViewModel is null) return; var window = TopLevel.GetTopLevel(this) as Window; if (window is null) return; var dialog = new AdditionSearchDialog(); var selectedAddition = await dialog.ShowAdditionSearch(ViewModel.Additions, window); if (selectedAddition is not null) { ViewModel.Date = selectedAddition.Date; ViewModel.Comment = selectedAddition.Comment; ViewModel.Lines.Clear(); foreach (var l in selectedAddition.Lines) ViewModel.Lines.Add(new TransactionLine { PartInternalNumber = l.PartInternalNumber, Quantity = l.Quantity }); } } }