finskayMagazin/TovarV2/AddTovar.axaml.cs

94 lines
2.8 KiB
C#
Raw Normal View History

2025-06-05 08:22:50 +00:00
using Avalonia.Controls;
using System.Linq;
using System;
using System.IO;
using System.Windows;
using Avalonia.Media.Imaging;
using Avalonia.Skia.Helpers;
using System.Drawing.Imaging;
using System.Drawing;
using System.Threading.Tasks;
using Bitmap = Avalonia.Media.Imaging.Bitmap;
using Image = System.Drawing.Image;
using Avalonia.Threading;
namespace TovarV2
{
public partial class AddTovar : Window
{
public string path;
public Bitmap bitmapToBind;
public TextBox GetNameTov => nameTov;
public TextBox GetPriceTov => priceTov;
public TextBox GetQuantityTov => quantityTov;
public TextBlock GetErrorMsg => errorMsg;
public Avalonia.Controls.Image GetImagePath => ImagePath;
public static bool IsOpen { get; private set; }
public AddTovar()
{
InitializeComponent();
this.Opened += (_, _) => IsOpen = true;
this.Closed += (_, _) => IsOpen = false;
}
public async void AddTovarImg_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
OpenFileDialog _openFileDialog = new OpenFileDialog();
var result = await _openFileDialog.ShowAsync(this);
if (result == null) return;
string path = string.Join("", result);
if (result != null)
{
bitmapToBind = new Bitmap(path);
}
ImagePath.Source = bitmapToBind;
}
public void AddTovarOk_Click(object? sender, Avalonia.Interactivity.RoutedEventArgs e)
{
errorMsg.Text = string.Empty;
bool checkListProdContainsThisName = false;
foreach (Product prod in ListPr.ListProd)
{
if (nameTov.Text == prod.nameProd)
{
checkListProdContainsThisName = true;
}
}
if (checkListProdContainsThisName)
{
errorMsg.Text = "Товар с таким именем уже имеется в каталоге";
}
else
{
ListPr.ListProd.Add(new Product()
{
Id = ListPr.b,
nameProd = nameTov.Text,
priceProd = Convert.ToInt32(priceTov.Text),
quantityProd = Convert.ToInt32(quantityTov.Text),
bitmapProd = bitmapToBind
});
ListPr.b++;
ProductEdit productEdit = new ProductEdit();
productEdit.Show();
this.Close();
}
}
}
}