/// <summary> /// Akcja odpowiedzialna za obliczanie ceny i wypisywanie jej do labela. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void textBoxAmount_TextChanged(object sender, EventArgs e) { if (!textBoxAmount.Text.Equals("")) { //Pobranie nazwy produktu z comboBoxa do zmiennej String product = comboBoxProduct.Text; using (MichalSurmackiLab04Zad01Entities context = new MichalSurmackiLab04Zad01Entities()) { //pobranie ceny produktu z bazy danych ProductsForSale info = new ProductsForSale(); //wybranie z bazy produktu o nazwie takiej jak zczytana z comboboxa info = context.ProductsForSales.Where(x => x.Product.Equals(product)).FirstOrDefault(); //konwersja ceny wydobytej z bazy danych int price = Int32.Parse(info.Price.ToString()); //próba konwersji typów - w przypadku nie udanej próby informacja o błędzie try { price *= Int32.Parse(textBoxAmount.Text); labelPriceValue.Text = price.ToString(); } catch { MessageBox.Show("Wprowadzono niepoprawne dane!"); this.Close(); } } } else { //wypianie do textBoxAmount wartości 0 w celu uniknięcia błędów textBoxAmount.Text = "0"; } }
/// <summary> /// Metoda odpowiedzialna za dodawanie ilości produktu do bazy danych. /// </summary> /// <param name="product"></param> /// <param name="productID"></param> /// <param name="amount"></param> public void AddAmountOfProduct(String product, int amount) { //zmienna pozwalająca na dokonywanie operacji na bazie danych using (MichalSurmackiLab04Zad01Entities context = new MichalSurmackiLab04Zad01Entities()) { //sprawdzenie czy produkt o zadanych parametrach istnieje w bazie var checkIfProductExist = context.ProductsForSales.Where(x => x.Product == product).Count(); //jeśli istnieje zostają wykonane następujące isntrukcje if (checkIfProductExist == 1) { //modyfikacja rekordu z bazy danych ProductsForSale editingProduct = new ProductsForSale(); editingProduct = context.ProductsForSales.Where(x => x.Product.Equals(product)).FirstOrDefault(); editingProduct.Product = product; int newAmount = Int32.Parse(editingProduct.InStock.ToString()); newAmount += amount; editingProduct.InStock = newAmount; context.Entry(editingProduct).State = EntityState.Modified; context.SaveChanges(); } //jeśli przedmiot o zadanych parametrach nie znajduje się w bazie danych - wyświetlenie komunikatu else { MessageBox.Show("Taki produkt nie istnieje!", "Komunikat"); } } }
/// <summary> /// Funkcja dodająca nowy produkt do bazy danych /// </summary> /// <param name="price"></param> /// <param name="category"></param> /// <param name="product"></param> /// <param name="amountInStock"></param> public Boolean AddProtuctToBase(int price, String category, String product, int amountInStock) { using (MichalSurmackiLab04Zad01Entities context = new MichalSurmackiLab04Zad01Entities()) { //zmienna pozwalająca dodać dane do bazy danych ProductsForSale newProduct = new ProductsForSale(); //dodanie do zmiennej poszczególnych atrybutów newProduct.Price = price; newProduct.Category = category; newProduct.Product = product; newProduct.InStock = amountInStock; //sprawdzenie czy w bazie jest może już produkt o danej nazwie var checkProductExist = context.ProductsForSales.Where(x => x.Product == product).Count(); //jeśli w bazie nie ma produktu o takich parametrach - dodanie go do bazy if (checkProductExist < 1) { context.ProductsForSales.Add(newProduct); context.SaveChanges(); return(true); } //jeśli parametry nie są unikatowe zostaje wyświetlony komunikat else { MessageBox.Show("Istnieje już taki produkt w bazie!", "Komunikat"); return(false); } } }
/// <summary> /// Funckja odpowiedzialna za usuwanie zadanej ilości produktu z bazy danych. /// </summary> /// <param name="product"></param> /// <param name="amount"></param> public Boolean DeleteProduct(String product, int amount) { //zmienna pozwalająca na wykonywanie operacji na bazie danych using (MichalSurmackiLab04Zad01Entities context = new MichalSurmackiLab04Zad01Entities()) { //wyszukanie produktu o zadanych parametrach w bazie danych var checkIfProductExist = context.ProductsForSales.Where(x => x.Product == product).Count(); //jeśli produkt istnieje wykonanie instrukcji if (checkIfProductExist == 1 && amount != 0) { //modyfikacja rekordu z bazy danych ProductsForSale editingProduct = new ProductsForSale(); editingProduct = context.ProductsForSales.Where(x => x.Product.Equals(product)).FirstOrDefault(); editingProduct.Product = product; int newAmount = Int32.Parse(editingProduct.InStock.ToString()); newAmount -= amount; //jeśli pożądana do kupna ilość nie jest większa niż ilość przedmiotu na stanie - zakup jest możliwy if (newAmount >= 0) { editingProduct.InStock = newAmount; context.Entry(editingProduct).State = EntityState.Modified; context.SaveChanges(); return(true); } //jeśli dokonano próby zakupu przedmiotu, którego ilość jest mniejsza niż pożądana - zakup jest niemożliwy else { return(false); } } //jeśli produkt nie istnieje zwrócenie wartości false. else { return(false); } } }