/// <summary> /// Добавляем операцию и предоперационный протокол /// </summary> /// <param name="toHospitalizationWorker"></param> /// <param name="fromOperationWorker"></param> /// <param name="toOperationWorker"></param> /// <param name="fromOperationProtocolWorker"></param> /// <param name="toOperationProtocolWorker"></param> /// <param name="fromOperationId"></param> /// <param name="toHospitalizationId"></param> public static void AddOperationAndProtocol( CHospitalizationWorker toHospitalizationWorker, COperationWorker fromOperationWorker, COperationWorker toOperationWorker, COperationProtocolWorker fromOperationProtocolWorker, COperationProtocolWorker toOperationProtocolWorker, int fromOperationId, int toHospitalizationId) { CHospitalization toHospitalization = toHospitalizationWorker.GetById(toHospitalizationId); var toOperation = new COperation(fromOperationWorker.GetById(fromOperationId)) { Id = toOperationWorker.GetNewID(), PatientId = toHospitalization.PatientId, HospitalizationId = toHospitalizationId }; toOperationWorker.Update(toOperation); // Добавляем предоперационный протокол toOperationProtocolWorker.GetByOperationId(toOperation.Id); var toOperationProtocol = new COperationProtocol( fromOperationProtocolWorker.GetByOperationId(fromOperationId)) { OperationId = toOperation.Id }; toOperationProtocolWorker.Update(toOperationProtocol); }
/// <summary> /// Сохранение изменений при закрытие формы, если надо /// </summary> /// <param name="sender">Объект, пославший сообщение</param> /// <param name="e">Объект, содержащий данные посланного сообщения</param> private void OperationViewForm_FormClosing(object sender, FormClosingEventArgs e) { if (!_isFormClosingByButton) { DialogResult dialogResult = MessageBox.ShowDialog("Вы хотите сохранить изменения?", "Закрытие окна", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); if (dialogResult == DialogResult.Yes) { _isNeedSaveData = true; } else if (dialogResult == DialogResult.No) { _isNeedSaveData = false; } else { e.Cancel = true; return; } } _isFormClosingByButton = false; // Если все проверки при закрытии формы пройдены и форму закрыли с сохранением данных - // то сохраняем данные if (_isNeedSaveData) { _isNeedSaveData = false; if (IsFormHasEmptyNeededFields()) { MessageBox.ShowDialog("Поля, отмеченные звёздочкой, обязательны для заполнения", "Предупреждение", MessageBoxButtons.OK, MessageBoxIcon.Warning); e.Cancel = true; return; } if (_operationInfo.OpenedOperationProtocolForm != null && !_operationInfo.OpenedOperationProtocolForm.IsDisposed) { MessageBox.ShowDialog("Вы не можете закрыть эту форму, пока не закроете форму \"Протокол операции\"", "Сообщение", MessageBoxButtons.OK, MessageBoxIcon.Information); _operationInfo.OpenedOperationProtocolForm.Focus(); e.Cancel = true; return; } try { _operationWorker.Update(_operationInfo); _hospitalizationViewForm.ShowOperations(); } catch (Exception ex) { MessageBox.ShowDialog(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); e.Cancel = true; return; } } else { try { if (_action == AddUpdate.Add) { _operationWorker.Remove(_operationInfo.Id); } else { _operationInfo = new COperation(_saveOperationInfo); _operationWorker.Update(_operationInfo); } _hospitalizationViewForm.ShowOperations(); } catch (Exception ex) { MessageBox.ShowDialog(ex.ToString(), "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } } _configurationEngine.OperationViewFormLocation = Location; }