86 lines
2.0 KiB
C#
86 lines
2.0 KiB
C#
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();
|
|
}
|
|
}
|
|
} |