Пример #1
0
 /// <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);
         }
     }
 }