DINO_SCRUM/Magazyn_Client/Magazyn/Windows/AmountWindow.xaml.cs

122 lines
3.4 KiB
C#

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
{
/// <summary>
/// Interaction logic for AmountWindow.xaml
/// </summary>
///
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.Source = 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();
}
}
}