private void ctrlBReportAddRecord_Click(object sender, System.EventArgs e) { var dlg = new Dlg_RecordSelectSource(); if (dlg.ShowDialog(this) == DialogResult.OK) { try { if (dlg.p_SelectedTemplate != null) { Cl_Record record = new Cl_Record(); record.p_DateCreate = DateTime.Now; record.p_DateLastChange = record.p_DateCreate; record.f_SetTemplate(dlg.p_SelectedTemplate); record.p_MedicalCard = Cl_SessionFacade.f_GetInstance().p_MedicalCard; record.p_MedicalCardID = record.p_MedicalCard.p_ID; record.p_ClinicName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_ClinicName; record.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor); var dlgRecord = new Dlg_Record(); dlgRecord.e_Save += DlgRecord_e_Save; dlgRecord.p_Record = record; Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.UIEvents, string.Format("Создание новой записи. Шаблон {0}", record.p_Template.p_Name)); dlgRecord.ShowDialog(this); } } catch (Exception er) { MonitoringStub.Error("Error_Editor", "Не удалось добавить запись", er, null, null); } } }
private void ctrlBReportAddRecordByFile_Click(object sender, EventArgs e) { Cl_Record record = new Cl_Record(); record.p_DateCreate = DateTime.Now; record.p_Type = E_RecordType.FinishedFile; record.p_DateLastChange = record.p_DateCreate; record.p_MedicalCard = Cl_SessionFacade.f_GetInstance().p_MedicalCard; record.p_MedicalCardID = record.p_MedicalCard.p_ID; record.p_ClinicName = Cl_SessionFacade.f_GetInstance().p_Doctor.p_ClinicName; record.p_Title = "Новая запись с готовым файлом"; //record.p_CategoryTotalID = category.p_ID; //record.p_CategoryTotal = category; record.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor); var dlgRecord = new Dlg_Record(); dlgRecord.e_Save += DlgRecord_e_Save; dlgRecord.p_Record = record; Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.UIEvents, "Создание новой записи с готовым файлом"); dlgRecord.ShowDialog(this); }
private void ctrlBSave_Click(object sender, System.EventArgs e) { if (string.IsNullOrWhiteSpace(ctrlTitle.Text)) { MonitoringStub.Message("Заполните поле \"Заголовок\"!"); return; } if (ctrlDTPDateReception.Value == null) { MonitoringStub.Message("Заполните поле \"Дата приема\"!"); return; } if (ctrlDTPTimeReception.Value == null) { MonitoringStub.Message("Заполните поле \"Время приема\"!"); return; } if (m_Record != null) { Cl_Record record = null; if (m_Record.p_Type == E_RecordType.ByTemplate && m_ControlTemplate != null) { record = m_ControlTemplate.f_GetNewRecord(); } else if (m_Record.p_Type == E_RecordType.FinishedFile && m_ControlRecordByFile != null) { record = m_ControlRecordByFile.f_GetNewRecord(); if (record?.p_FileBytes == null) { MonitoringStub.Message("Заполните поле \"Файл записи\"!"); return; } } if (record != null) { using (var transaction = Cl_App.m_DataContext.Database.BeginTransaction()) { try { if (m_Log.f_IsChanged(record) == false && record.p_Title == ctrlTitle.Text) { MonitoringStub.Message("Элемент не изменялся!"); transaction.Rollback(); return; } record.p_Title = ctrlTitle.Text; record.p_DateReception = new DateTime(ctrlDTPDateReception.Value.Year, ctrlDTPDateReception.Value.Month, ctrlDTPDateReception.Value.Day, ctrlDTPTimeReception.Value.Hour, ctrlDTPTimeReception.Value.Minute, 0); if (Cl_SessionFacade.f_GetInstance().p_Doctor.p_Permission.p_Role == Core.Permision.E_Roles.Assistant) { record.f_SetDoctor(Cl_SessionFacade.f_GetInstance().p_Doctor.p_ParentUser); } Cl_App.m_DataContext.p_Records.Add(record); Cl_App.m_DataContext.SaveChanges(); if (m_Record.p_Type == E_RecordType.FinishedFile) { record.p_FilePath = Cl_RecordsFacade.f_GetInstance().f_GetLocalResourcesRelativeFilePath(record); Cl_RecordsFacade.f_GetInstance().f_SaveFileFromSql(record); } else { record.p_HTMLDoctor = record.f_GetHTMLDoctor(); record.p_HTMLPatient = record.f_GetHTMLPatient(); } if (record.p_Version == 1) { record.p_RecordID = record.p_ID; } Cl_App.m_DataContext.SaveChanges(); Cl_EntityLog.f_CustomMessageLog(E_EntityTypes.UIEvents, string.Format("Сохранение записи: {0}, дата записи: {1}, клиника: {2}", record.p_Title, record.p_DateCreate, record.p_ClinicName), record.p_RecordID); m_Log.f_SaveEntity(record, record.p_ParentRecord != null ? $"Создана новая запись на основе {record.p_ParentRecord.p_Title}" : "Создана новая запись"); transaction.Commit(); f_SetRecord(record); e_Save?.Invoke(this, new Cl_Record.Cl_EventArgs() { p_Record = record }); this.Close(); } catch (Exception ex) { transaction.Rollback(); try { Cl_RecordsFacade.f_GetInstance().f_DeleteFileFromSql(record); } catch { }; MonitoringStub.Error("Error_Editor", "При сохранении изменений записи произошла ошибка", ex, null, null); } } } } }