using Magazyn.DataModels; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace Magazyn.Windows { /// /// Interaction logic for AmountWindow.xaml /// /// public partial class AmountWindow : Window { Fruit fruit; int type; int quantity; public delegate void ChangingAmountOfFruits(int amountChanged); public event ChangingAmountOfFruits SaveChangingAmountOfFruits; public AmountWindow(Fruit fruit, int type, int quantity) { InitializeComponent(); this.fruit = fruit; this.type = type; this.quantity = quantity; if (type == -1) this.Title = "Zmniejsz ilość " + fruit.Name; else this.Title = "Zwiększ ilość " + fruit.Name; fruitName.Text = fruit.Name; fruitName.Text = fruit.Name; messageBox.Text = String.Format("Jaką ilość produktu chcesz {0} do magazynu?", (type > 0) ? "dodać":"odjąć"); try { fruitImage.Source = new BitmapImage(new Uri(fruit.ImageLink)); } catch (Exception ex) { } } private void saveButton_Click(object sender, RoutedEventArgs e) { int amount = 0; int maxAmount = 2500; try { amount = int.Parse(amountToChange.Text); if (amount < 0) { MessageBox.Show("Podana wartość jest nieprawidłowa, proszę podać wartość dodatnią", "Nieprawidłowa wartość", MessageBoxButton.OK, MessageBoxImage.Error); amountToChange.Text = "0"; return; } } catch (Exception ex) { throw new NotImplementedException(ex.Message); } if ((quantity + amount > maxAmount) && amount >= 0 && type == 1) { MessageBox.Show("Przepełnienie magazynu", "Przepełnienie, maksymalnie 2500 sztuk", MessageBoxButton.OK, MessageBoxImage.Error); amountToChange.Text = "0"; return; } else if ((quantity - amount < 0) && amount >= 0 && type == -1) { MessageBox.Show("Niedobór magazynu", "Ilość przedmiotów nie możę być mniejsza niz 0", MessageBoxButton.OK, MessageBoxImage.Error); amountToChange.Text = "0"; return; } else { SaveChangingAmountOfFruits.Invoke((type > 0) ? amount : -amount); this.Close(); } } private void cancelButton_Click(object sender, RoutedEventArgs e) { this.Close(); } } }