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; bool focusLock = false; 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; messageBox.Text = String.Format("Jaką ilość produktu chcesz {0} do magazynu?", (type > 0) ? "dodać" : "odjąć"); try { fruitImage.ImageSource = fruit.ImageSource; } catch (Exception ex) { MessageBox.Show(ex.Message); } this.Loaded += AmountWindowLoaded; } private void AmountWindowLoaded(object sender, RoutedEventArgs e) { amountToChange.Focus(); } private void SendNewQuantity() { int amount; try { amount = int.Parse(amountToChange.Text); } catch { ErrorWindow window = new ErrorWindow("Podana wartość jest nieprawidłowa, proszę podać liczbę dodatnią."); window.Owner = Application.Current.MainWindow; window.ShowDialog(); amountToChange.Text = "0"; return; } try { if (amount < 0) { ErrorWindow window = new ErrorWindow("Podana wartość jest nieprawidłowa, proszę podać wartość dodatnią."); window.Owner = Application.Current.MainWindow; window.ShowDialog(); amountToChange.Text = "0"; return; } } catch (Exception ex) { throw new NotImplementedException(ex.Message); } SaveChangingAmountOfFruits.Invoke((type > 0) ? amount : -amount); this.Close(); } private void saveButton_Click(object sender, RoutedEventArgs e) { SendNewQuantity(); } private void cancelButton_Click(object sender, RoutedEventArgs e) { this.Close(); } private void Window_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Return) SendNewQuantity(); } } }