/// <summary> /// Добавление компьютера в БД /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Cf_btn_addComputer_Click(object sender, EventArgs e) { if (cf_tb_computerName.Text != "") { if (cf_lv_components.Items.Count != 0) { if (Regex.IsMatch(cf_tb_computerName.Text, regText)) { using (var transaction = cf_db.Database.BeginTransaction()) { try { //Сохранение компьютера в БД Computer comp = new Computer(); comp.Title = cf_tb_computerName.Text; comp.Price = Convert.ToDecimal(string.Format("{0:0.00}", totalPrice.ToString())); cf_db.Computer.Add(comp); cf_db.SaveChanges(); //Сохранение компонентов в БД foreach (ListViewItem item in cf_lv_components.Items) { ComputerItem ci = new ComputerItem(); ci.ComputerId = comp.Id; ci.ComponentId = Convert.ToInt32(item.Text.ToString()); cf_db.ComputerItem.Add(ci); cf_db.SaveChanges(); } transaction.Commit(); } catch (Exception ex) { ShowMessage(ex.Message); transaction.Rollback(); } } } else { ShowMessage("Ошибка в названии компьютера"); this.DialogResult = DialogResult.None; } } else { ShowMessage("Компоненты не добавлены!"); this.DialogResult = DialogResult.None; } } else { ShowMessage("Введите название компьютера!"); this.DialogResult = DialogResult.None; } }
private void Sf_btn_createCheck_Click(object sender, EventArgs e) { if (sf_cb_buyer.SelectedIndex != -1) { if (sf_lv_checkItems.Items.Count > 0) { using (var transaction = sf_db.Database.BeginTransaction()) { try { //Сохранение чека в БД Check check = new Check(); check.BuyerId = (int)sf_cb_buyer.SelectedValue; check.Date = DateTime.Now; check.CheckCoast = Convert.ToDouble(string.Format("{0:0.00}", totalPrice.ToString())); sf_db.Check.Add(check); sf_db.SaveChanges(); //Сохранение компонентов в БД foreach (ListViewItem item in sf_lv_checkItems.Items) { CheckItem ci = new CheckItem(); ci.CheckId = check.Id; if (item.Text != "N/A") { int quantity = Convert.ToInt32(item.SubItems[1].Text); ci.ItemId = sf_db.Component.FirstOrDefault(tmp => tmp.Vendor_code == item.Text).Id; ci.ItemQuantity = quantity; ci.IsComputer = 0; //Изменение количества комплектующего Component cmpnt = sf_db.Component.FirstOrDefault(c => c.Id == ci.ItemId); quantity = cmpnt.Quantity - quantity; cmpnt.Quantity = (short)quantity; } else { string title = item.SubItems[2].Text; int quantity = Convert.ToInt32(item.SubItems[1].Text); Computer _tmp = sf_db.Computer.FirstOrDefault(tmp => tmp.Title == title); ci.ItemId = _tmp.Id; ci.ItemQuantity = quantity; ci.IsComputer = 1; //Изменение количества комплектующего компьютера foreach (ComputerItem compItem in _tmp.ComputerItem) { compItem.Component.Quantity = (short)(compItem.Component.Quantity - quantity); } } sf_db.CheckItem.Add(ci); sf_db.SaveChanges(); } transaction.Commit(); } catch (Exception ex) { ShowMessage(ex.Message); transaction.Rollback(); } } } else { ShowMessage("Вы не добавили в чек товар!"); } } else { ShowMessage("Вы не выбрали покупателя"); } }