private void btnSubmit_Click(object sender, RoutedEventArgs e) { LinqToSqlDataContext db = DatabaseSetup.Database; try { string name = ValidateProduct.Name(tbName.Text); int quantity = ValidateProduct.Quantity(tbQuantity.Text); string unitName = cbUnit.Text; decimal unitQuantity = ValidateProduct.UnitQuantity(tbUnitQuantity.Text); DateTime?date = ValidateProduct.Date(dpExpirationDate.SelectedDate); decimal price = ValidateProduct.Price(tbPrice.Text); price = Convert.ToDecimal(Math.Round(Convert.ToDouble(price), 1, MidpointRounding.AwayFromZero)); bool priceForUnit = cbPriceForUnit.Text == "Ano" ? true : false; char VAT = cbVAT.SelectedItem.ToString()[0]; Product selectedProduct = (from p in db.Products where p.id == this._id select p).Single(); int code = ValidateProduct.Code(tbCode.Text, selectedProduct.code); int uId = (from u in db.Units where u.name == unitName select u.id).Single(); selectedProduct.name = name; selectedProduct.quantity = quantity; selectedProduct.unit = uId; selectedProduct.unitQuantity = unitQuantity; selectedProduct.expirationDate = date; selectedProduct.code = code; selectedProduct.price = price; selectedProduct.priceForUnit = priceForUnit; selectedProduct.vatId = VAT; db.SubmitChanges(); DialogHelper.ShowInfo("Produkt byl upraven."); btnSubmit.IsEnabled = false; } catch (InvalidNameException ex) { DialogHelper.ShowError(ex.Message); } catch (InvalidQuantityException ex) { DialogHelper.ShowError(ex.Message); } catch (InvalidUnitQuantityException ex) { DialogHelper.ShowError(ex.Message); } catch (ExistingCodeException ex) { DialogHelper.ShowError(ex.Message); } catch (InvalidCodeException ex) { DialogHelper.ShowError(ex.Message); } catch (InvalidPriceException ex) { DialogHelper.ShowError(ex.Message); } catch (NullDateTimeException ex) { DialogHelper.ShowError(ex.Message); } catch (Exception ex) { Errors.SaveError(ex.Message); DialogHelper.ShowError("Některé z polí není správně vyplněno."); } }
private void btnSubmit_Click(object sender, RoutedEventArgs e) { try { string name = ValidateProduct.Name(tbName.Text); int quantity = ValidateProduct.Quantity(tbQuantity.Text); string unitName = cbUnit.Text; decimal unitQuantity = ValidateProduct.UnitQuantity(tbUnitQuantity.Text); DateTime?date = ValidateProduct.Date(dpExpirationDate.SelectedDate); int code = ValidateProduct.Code(tbCode.Text); decimal price = ValidateProduct.Price(tbPrice.Text); price = Convert.ToDecimal(Math.Round(Convert.ToDouble(price), 1, MidpointRounding.AwayFromZero)); // cena se zaokrouhlí na jedno desetinné místo bool priceForUnit = cbPriceForUnit.Text == "Ano" ? true : false; char VAT = cbVAT.SelectedItem.ToString()[0]; LinqToSqlDataContext db = DatabaseSetup.Database; int i = (from u in db.Units where u.name == unitName select u.id).Single(); int unitId = i; if (StorageSetup.AddProduct(name, quantity, unitId, unitQuantity, date, code, price, priceForUnit, VAT)) { // ještě je potřeba uložit do databáze obrázky a asociovat je s produktem Product lastAddedProduct = StorageSetup.GetLastAddedProduct(); if (gallery.lbContainer.HasItems) { foreach (ImageStruct istr in gallery.Images) { Images.AddImage(istr); ImagesTable lastAddedImage = Images.FindLastAddedImage(); Images.AssignImageToProduct(lastAddedProduct, lastAddedImage); } } DialogHelper.ShowInfo("Produkt přidán."); this.Close(); } else { throw new NotImplementedException(); } } catch (InvalidNameException ex) { DialogHelper.ShowWarning(ex.Message); } catch (InvalidQuantityException ex) { DialogHelper.ShowWarning(ex.Message); } catch (InvalidUnitQuantityException ex) { DialogHelper.ShowWarning(ex.Message); } catch (ExistingCodeException ex) { DialogHelper.ShowWarning(ex.Message); } catch (InvalidCodeException ex) { DialogHelper.ShowWarning(ex.Message); } catch (InvalidPriceException ex) { DialogHelper.ShowWarning(ex.Message); } catch (NullDateTimeException ex) { DialogHelper.ShowWarning(ex.Message); } catch { DialogHelper.ShowError("Produkt nebylo možné přidat."); } }