//сохранение строки private void SaveData(Object o) { //пробежимся по строкам калибровочной таблицы и удалим незаполненные bool key = true; while (key && newRow != null) { key = false; foreach (FIDER_CALIBRATION ac in data) { if (ac.F_CAL_F == null || ac.F_CAL_VALUE == null || ac.F_CAL_F == 0 || ac.F_CAL_VALUE == 0) { data.Remove(ac); methodsEntities.FIDER_CALIBRATION.Remove( methodsEntities.FIDER_CALIBRATION.Where(p => p.F_CAL_ID == ac.F_CAL_ID) .FirstOrDefault()); key = true; break; } } //всё просмотрели, ничего не пришлось удалять } try { if (newRow != null) //сохранение новой записи { methodsEntities.FIDER.Add(newRow); methodsEntities.SaveChanges(); fiders = new ObservableCollection <FIDER>(methodsEntities.FIDER.OrderBy(p => p.F_TYPE)); RefreshGcFiders(); //перепривязка данных, иначе таблица не обновляется selectedRow = fiders.Where(p => p.F_TYPE == "").FirstOrDefault(); isEnabled = true; } else //сохранение откорректированной записи { int selectedId = selectedRow.F_ID; methodsEntities.SaveChanges(); fiders = new ObservableCollection <FIDER>(methodsEntities.FIDER.OrderBy(p => p.F_TYPE)); RefreshGcFiders(); //перепривязка данных, иначе таблица не обновляется selectedRow = fiders.Where(p => p.F_ID == selectedId).FirstOrDefault(); isEnabled = false; } } catch (Exception e) { MessageBox.Show("Ошибка сохранения изменения в БД. " + e.Message); } RaisePropertyChanged(() => selectedRow); }
private void DeleteAnalysis() { if (anl_id == 0) { return; } if (methodsEntities.CurrentUserTask.Where(p => p.CUT_ANL_ID == anl_id && p.CUT_USER_NAME != userName).Any()) { MessageBox.Show("Выбранную строку удалить невозможно, т.к. она используется другим пользователем."); return; } methodsEntities.ANALYSIS.Remove(methodsEntities.ANALYSIS.Where(p => p.ANL_ID == anl_id).FirstOrDefault()); methodsEntities.SaveChanges(); RefreshAnalysis(); if (analysis.Count > 0) { anl_id = analysis[0].ANL_ID; } }
//сохранение строки private void SaveData(Object o) { if (newRow != null && !String.IsNullOrEmpty(newRow.MDT_NAME))//сохранение новой записи { if (methodsEntities.EQUIPMENT_TYPE.Where(p => p.EQT_NAME == newRow.MDT_NAME).Any()) { MessageBox.Show("Такая строка уже сущестует в таблице."); return; } methodsEntities.MEASURING_DEVICE_TYPE.Add(newRow); methodsEntities.SaveChanges(); RaisePropertyChanged(() => data); AddData(null); } else //сохранение откорректированной записи { int selectedId = selectedRow.MDT_ID; methodsEntities.SaveChanges(); RaisePropertyChanged(() => data); selectedRow = data.Where(p => p.MDT_ID == selectedId).FirstOrDefault(); } }
//сохранение строки private void SaveData(Object o) { if (typeId == null || typeId == 0) { MessageBox.Show("Выберите тип."); return; } if (newRow != null) //сохранение новой записи { newRow.MD_MDT_ID = typeId; var t = methodsEntities.MEASURING_DEVICE.Where( p => p.MD_MDT_ID == newRow.MD_MDT_ID && (p.MD_WORKNUMBER == null && String.IsNullOrEmpty(newRow.MD_WORKNUMBER) || p.MD_WORKNUMBER != null && p.MD_WORKNUMBER == newRow.MD_WORKNUMBER) && (p.MD_MODEL == null && String.IsNullOrEmpty(newRow.MD_MODEL) || p.MD_MODEL != null && p.MD_MODEL == newRow.MD_MODEL)); if (t.Count() != 0) { System.Windows.MessageBox.Show("Такая строка уже сущестует в таблице."); return; } methodsEntities.MEASURING_DEVICE.Add(newRow); methodsEntities.SaveChanges(); int mdIdNew = newRow.MD_ID; RaisePropertyChanged(() => data); AddData(null); } else //сохранение откорректированной записи { int selectedId = selectedRow.MD_ID; methodsEntities.SaveChanges(); RaisePropertyChanged(() => data); selectedRow = data.Where(p => p.MD_ID == selectedId).FirstOrDefault(); } }
//сохранение строки private void SaveData(Object o) { //пробежимся по строкам калибровочной таблицы и удалим незаполненные bool key = true; while (key && newRow == null) //только для сохранения не вновь добавленной строки { key = false; foreach (ANTENNA_CALIBRATION ac in data) { if (ac.ANT_CAL_F == 0 || ac.ANT_CAL_VALUE == 0) { data.Remove(ac); methodsEntities.ANTENNA_CALIBRATION.Remove( methodsEntities.ANTENNA_CALIBRATION.Where(p => p.ANT_CAL_ID == ac.ANT_CAL_ID) .FirstOrDefault()); key = true; break; } } //всё просмотрели, ничего не пришлось удалять } try { int selectedRowId; if (newRow != null) //сохранение новой записи { methodsEntities.SaveChanges(); selectedRowId = newRow.ANT_ID; antennas = new ObservableCollection <ANTENNA>(methodsEntities.ANTENNA.OrderBy(p => p.ANT_TYPE)); //.OrderBy(p => p.ANT_TYPE) isEnabled = true; newRow = null; //запись уже не новая //RefreshGcAntennas?.Invoke(); //перепривязка данных, иначе таблица не обновляется // selectedRow = antennas.Where(p => p.ANT_ID == selectedRowId).FirstOrDefault(); } else //сохранение откорректированной записи { methodsEntities.Entry(selectedRow).State = EntityState.Modified; selectedRowId = selectedRow.ANT_ID; if (String.IsNullOrEmpty(selectedRow.ANT_TYPE)) { MessageBox.Show("Заполните поле 'Тип антенны'"); FocusUI("AntType"); return; } if (String.IsNullOrEmpty(selectedRow.ANT_MODEL)) { MessageBox.Show("Заполните поле 'Модель'"); FocusUI("Model"); return; } if (selectedRow.ANT_F_UNIT_ID == null || selectedRow.ANT_F_UNIT_ID == 0) { MessageBox.Show("Заполните поле 'Единица измерения частоты'"); FocusUI("UnitId"); return; } methodsEntities.SaveChanges(); antennas = new ObservableCollection <ANTENNA>(methodsEntities.ANTENNA.OrderBy(p => p.ANT_TYPE)); isEnabled = false; RefreshGcAntennas?.Invoke(); //перепривязка данных, иначе связанные данные не обновляется } // RefreshGcAntennas?.Invoke(); //перепривязка данных, иначе связанные данные не обновляется //selectedRow = antennas.Where(p => p.ANT_ID == selectedRowId).FirstOrDefault(); } catch (Exception e) { MessageBox.Show("Ошибка сохранения изменения в БД. " + e.Message); } RaisePropertyChanged(() => selectedRow); }