demo2025_products_tiron_baby/AddProduct.axaml.cs

86 lines
2.0 KiB
C#
Raw Normal View History

2025-03-25 12:37:37 +00:00
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();
}
}
}