using Avalonia; using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using System; using System.Linq; using tiron_demo.Context; using tiron_demo.Models; namespace tiron_demo; public partial class AddProduct : Window { private float _minCostBackup; private Product _product; public AddProduct() { InitializeComponent(); _product = new Product(); _product.Articul = GenerateArticul(); _minCostBackup = 0; ProductTypeComboBox.ItemsSource = Helper.context.ProductTypes; ProductPanel.DataContext = _product; } public AddProduct(Product product) { InitializeComponent(); _product = product; _minCostBackup = product.MinCost; ProductTypeComboBox.ItemsSource = Helper.context.ProductTypes; ProductPanel.DataContext = _product; } private string GenerateArticul() { Random rnd = new Random(); string articul = ""; for (int i = 0; i < 7; i++) { articul += rnd.Next(10); } if (Helper.context.Products.Where(x => x.Articul == articul).Count() > 0) { articul = GenerateArticul(); } return articul; } private void Button_Click_Back(object? sender, RoutedEventArgs args) { _product.MinCost = _minCostBackup; ProductsWindow productsWindow = new ProductsWindow(); productsWindow.Show(); Close(); } private void Button_Click_Save(object? sender, RoutedEventArgs args) { if (_product.MinCost >= 0) { if (_product.Id == 0) { Helper.context.Products.Add(_product); Helper.context.SaveChanges(); } else { Helper.context.Products.Update(_product); Helper.context.SaveChanges(); } ProductsWindow productsWindow = new ProductsWindow(); productsWindow.Show(); Close(); } } }