protected internal async Task TemplatePage(RichEditControl editor, string ExaminationName, string ExaminationCode, Action Save, bool Type) { await Loading.Show(); await Task.Run(async() => { try { using (me = new MedicalModel(ConfigurationManager.Connect())) { await me.Database.Connection.OpenAsync(); companydata cd = me.companydata.Where(a => a.IdCD == GlobalVM.GlobalM.CompanyId).Single(); userdata ud = me.userdata.Where(a => a.IdUD == GlobalVM.GlobalM.UserID).Single(); patientdata pd = me.patientdata.Where(a => a.IdPD == PatientId).Single(); MemoryStream ms = new DocumentGenerator().Template( Type, cd.NameCD, me.zipcode_fx.Where(a => a.IdZC == cd.ZipCodeCD).Select(a => a.DataZC).Single().ToString(), me.settlement_fx.Where(a => a.IdS == cd.SettlementCD).Select(a => a.DataS).Single(), cd.AddressCD, ud.NameUD, (int)ud.SealNumberUD, pd.NamePD, pd.MotherNamePD, pd.BirthDatePD, pd.TAJNumberPD, me.zipcode_fx.Where(a => a.IdZC == pd.ZipCodePD).Select(a => a.DataZC).Single().ToString(), me.settlement_fx.Where(a => a.IdS == pd.SettlementPD).Select(a => a.DataS).Single(), pd.AddressPD, ExaminationName, ExaminationCode); workingConn = true; return(ms); } } catch (Exception ex) { Log.WriteException(ex); workingConn = false; return(null); } }, CancellationToken.None).ContinueWith(async task => { await Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Loaded, new Action(async() => { if (!workingConn) { ConnectionMessage(); } else { using (MemoryStream ms = new MemoryStream(task.Result.ToArray())) editor.LoadDocument(ms, DocumentFormat.OpenXml); Save(); } await Loading.Hide(); })); }); }
private async void ExecuteDoWork(object sender, DoWorkEventArgs e) { try { using (me = new MedicalModel(ConfigurationManager.Connect())) { await me.Database.Connection.OpenAsync(); if (!newForm) { selected = me.patientdata.Where(a => a.IdPD == selectedId).Single(); } else { selected = new patientdata(); } selected.NamePD = PatientDetailsMViewElements.UserName; if (PatientDetailsMViewElements.BirthName != null) { selected.BirthNamePD = PatientDetailsMViewElements.BirthName; } selected.GenderPD = PatientDetailsMDataSet.FullGenderList.Where(a => a.DataG == PatientDetailsMViewElements.GenderSelected).Select(a => a.IdG).Single(); selected.MotherNamePD = PatientDetailsMViewElements.MotherName; selected.BirthPlacePD = PatientDetailsMDataSet.FullSettlementList.Where(a => a.DataS == PatientDetailsMViewElements.BirthPlaceSelected).Select(a => a.IdS).Single(); selected.BirthDatePD = (DateTime)PatientDetailsMViewElements.BirthDate; selected.TAJNumberPD = PatientDetailsMViewElements.TajNumber; if (!PatientDetailsMViewElements.TaxNumber.Equals(0)) { selected.TAXNumberPD = PatientDetailsMViewElements.TaxNumber; } selected.ZipCodePD = PatientDetailsMDataSet.FullZipCodeList.Where(a => a.DataZC == PatientDetailsMViewElements.ZipCodeSelected).Select(a => a.IdZC).Single(); selected.SettlementPD = PatientDetailsMDataSet.FullSettlementList.Where(a => a.DataS == PatientDetailsMViewElements.SettlementSelected).Select(a => a.IdS).Single(); selected.AddressPD = PatientDetailsMViewElements.Address; if (PatientDetailsMViewElements.Phone != null) { selected.PhonePD = PatientDetailsMViewElements.Phone; } if (PatientDetailsMViewElements.MobilePhone != null) { selected.MobilePhonePD = PatientDetailsMViewElements.MobilePhone; } if (PatientDetailsMViewElements.Email != null) { selected.EmailPD = PatientDetailsMViewElements.Email; } selected.BillingNamePD = PatientDetailsMViewElements.BillingName; selected.BillingZipCodePD = PatientDetailsMDataSet.FullZipCodeList.Where(a => a.DataZC == PatientDetailsMViewElements.BillingZipCode).Select(a => a.IdZC).Single(); selected.BillingSettlementPD = PatientDetailsMDataSet.FullSettlementList.Where(a => a.DataS == PatientDetailsMViewElements.BillingSettlement).Select(a => a.IdS).Single(); selected.BillingAddressPD = PatientDetailsMViewElements.BillingAddress; if (newForm) { selected.CreatedPD = DateTime.Now; } if (PatientDetailsMViewElements.Notes != null) { selected.NotesPD = PatientDetailsMViewElements.Notes; } if (newForm) { me.patientdata.Add(selected); await me.SaveChangesAsync(); if (me.priviledges.Single(p => p.IdP == GlobalVM.GlobalM.PriviledgeID).IsDoctorP) { me.belong_st.Add(new belong_st() { IdUD = (int)GlobalVM.GlobalM.UserID, IdPD = selected.IdPD, WhenBelongBS = DateTime.Now }); } if (newForm && selectedId != null) { scheduleperson_st sp = me.scheduleperson_st.Single(spd => spd.IdSP == me.scheduledata. FirstOrDefault(sd => sd.IdSD == selectedId).PatientIdSD); me.newperson.Remove(me.newperson.Single(np => np.IdNP == sp.NewPersonIdSP)); sp.NewPersonIdSP = null; sp.ExistedIdSP = selected.IdPD; me.scheduledata.Where(sd => sd.IdSD == selectedId).Single().StillNotVisitedSD = false; } } await me.SaveChangesAsync(); } workingConn = true; } catch (Exception ex) { Log.WriteException(ex); workingConn = false; } }