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);
        }
示例#3
0
        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);
                        }
                    }
                }
            }
        }