private void btnSave_Click(object sender, EventArgs e) { PelengEntities pe = new PelengEntities(); var det = (from m in pe.Детали where (m.НомерДетали == this.ParentForm.Text) select m); var mat = (from m in pe.Материалы where (m.НаименованиеМатериала == tbMat.Text) select m); if (det.Count() != 0) { det.First().ВыходДеталей = (int)numericUpDown1.Value; det.First().НормаРасхода = double.Parse(mtbRate.Text); det.First().МатериалID = mat.First().МатериалID; if (maskedTextBox2.Visible) { det.First().ДлинаЗаготовки = double.Parse(maskedTextBox2.Text); det.First().ШиринаЗаготовки = double.Parse(maskedTextBox1.Text); } else { det.First().ДлинаЗаготовки = double.Parse(maskedTextBox1.Text); det.First().ШиринаЗаготовки = null; } pe.SaveChanges(); } else { if (((specificationWork)ParentForm).WayID != 0 & ((specificationWork)ParentForm).ItemName != "") { Детали d = new Детали(); d.Наименование = ((specificationWork)ParentForm).ItemName; d.НомерДетали = this.ParentForm.Text; d.МаршрутID = ((specificationWork)ParentForm).WayID; d.МатериалID = ((Материалы)tbMat.Tag).МатериалID; d.ВыходДеталей = (int)numericUpDown1.Value; d.НормаРасхода = double.Parse(mtbRate.Text); if (maskedTextBox2.Visible) { d.ДлинаЗаготовки = double.Parse(maskedTextBox2.Text); d.ШиринаЗаготовки = double.Parse(maskedTextBox1.Text); } else { d.ДлинаЗаготовки = double.Parse(maskedTextBox1.Text); d.ШиринаЗаготовки = null; } pe.AddToДетали(d); pe.SaveChanges(); } else { MessageBox.Show("Необходимо правильно заполнить все поля в разделе с основной информацией", "Внимание!", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } } }
private void btnSave_Click(object sender, EventArgs e) { if (tbWay.Text.StartsWith("-")) { tbWay.Text = tbWay.Text.Remove(0, 1); } if (tbWay.Text.EndsWith("-")) { tbWay.Text = tbWay.Text.Remove(tbWay.TextLength - 1); } PelengEntities pe = new PelengEntities(); var det = (from m in pe.Детали where (m.НомерДетали == number) select m); var sb = (from m in pe.Сборки where (m.НомерСборки == number) select m); Dictionary <int, string> waysDiction = new Dictionary <int, string>(); var grouped = from p in pe.Маршруты orderby p.МаршрутID group p by p.МаршрутID into grp select new { ID = grp.Key, objWay = grp }; foreach (var w in grouped.ToList()) { string s = ""; foreach (var r in w.objWay) { s += r.НомерПодразделения + "-"; } s = s.Remove(s.Length - 1); waysDiction.Add(w.ID, s); } int numberWay = 0; foreach (int n in waysDiction.Keys) { if (tbWay.Text == waysDiction[n]) { numberWay = n; break; } } string[] subWays = tbWay.Text.Split('-'); if (numberWay == 0) { int z = 1; foreach (string s in subWays) { pe.Маршруты.AddObject(new Маршруты { МаршрутID = waysDiction.Count + 1, ПорядковыйНомер = z++, НомерПодразделения = s }); } pe.SaveChanges(); waysDiction.Add(numberWay = waysDiction.Count + 1, tbWay.Text); } tbWay.AutoCompleteCustomSource.AddRange(waysDiction.Values.ToArray()); if (det.Count() != 0) { det.First().Наименование = tbName.Text; det.First().МаршрутID = numberWay; pe.SaveChanges(); } else if (sb.Count() != 0) { sb.First().Наименование = tbName.Text; sb.First().МаршрутID = numberWay; pe.SaveChanges(); } else if (number.EndsWith("0")) { Сборки assembly = new Сборки(); assembly.Наименование = tbName.Text; assembly.МаршрутID = numberWay; assembly.НомерСборки = number; pe.Сборки.AddObject(assembly); pe.SaveChanges(); } else { tabSpecification.SelectedTab = tabMaterial; } currentName = tbName.Text; currentWay = tbWay.Text; this.DialogResult = DialogResult.OK; }