private void SetCurrentPatientID(object sender, object data) { if (sender != null) { _fileNameOnly = sender as string; } CurrentDocument = new HirurgOverview(); try { // CurrentPatient = PtRep.Get((int)data);CurrentDocument Doctors = new ObservableCollection <Docs>(); //bool tester = true; foreach (var doc in Data.Doctor.GetAll) { if (doc.isEnabled.Value) { Doctors.Add(new Docs(doc)); } } if (data != null && int.Parse(data.ToString()) != 0) { CurrentDocument = Data.HirurgOverview.Get(int.Parse(data.ToString())); if (CurrentDocument.DoctorId != 0) { var doc = Data.Doctor.Get(CurrentDocument.DoctorId); foreach (var docs in Doctors) { if (docs.doc.Id == doc.Id) { DoctorSelectedId = Doctors.IndexOf(docs); } } } // DoctorSelectedId = CurrentDocument.DoctorId; IsDocAdded = Visibility.Visible; if (IsVisibleForSecretary != Visibility.Hidden) { IsDocAddedSave = Visibility.Visible; } TextForDoWhat = ""; } else { DoctorSelectedId = 0; IsDocAddedSave = Visibility.Hidden; IsDocAdded = Visibility.Hidden; TextForDoWhat = "Сформируйте или загрузите документ"; } } catch { } IsAnalizeLoadedVisibility = Visibility.Hidden; //TODO: LOAD FROM FILE }
public ViewModelHirurgOverview(NavigationController controller) : base(controller) { IsAnalizeLoadedVisibility = Visibility.Hidden; ButtonName = "К Пациенту";//SetCurrentPatientIDRealyThisTime MessageBus.Default.Subscribe("SetAccIDForHirurgOverview", SetAccID); MessageBus.Default.Subscribe("GetHirurgOverviewForHirurgOverview", SetCurrentPatientID); MessageBus.Default.Subscribe("SetCurrentPatientIDRealyThisTime", SetCurrentPatientIDRealyThisTime); // MessageBus.Default.Subscribe("GetAnalizeForAnalizeOverview", SetCurrentAnalizeID); HasNavigation = false; Controller = controller; ToCurrentObsledCommand = new DelegateCommand( () => { if (!string.IsNullOrWhiteSpace(FileName)) { MessageBoxResult dialogResult = MessageBox.Show("Вы сохранили изменения в документе?", "", MessageBoxButton.YesNo); if (dialogResult == MessageBoxResult.Yes) { Controller.NavigateTo <ViewModelAddPhysical>(); FileName = ""; } } else { Controller.NavigateTo <ViewModelAddPhysical>(); FileName = ""; } } ); CurrentSavePanelViewModel = new SclerozPanelViewModel(this); OpenAddSaveCommand = new DelegateCommand(() => { if (!string.IsNullOrWhiteSpace(FileName)) { CurrentSavePanelViewModel.ClearPanel(); CurrentSavePanelViewModel.PanelOpened = true; } else { MessageBox.Show("Сначала откройте документ"); } }); CurrentSelectDoctorPanelViewModel = new SclerozPanelViewModel(this); RevertSelectDoctorCommand = new DelegateCommand(() => { CurrentSelectDoctorPanelViewModel.PanelOpened = false; }); OpenSelectDoctorCommand = new DelegateCommand(() => { CurrentSelectDoctorPanelViewModel.ClearPanel(); CurrentSelectDoctorPanelViewModel.PanelOpened = true; }); RevertSaveCommand = new DelegateCommand(() => { CurrentSavePanelViewModel.PanelOpened = false; }); OpenWordDocument = new DelegateCommand( () => { int togle = 0; FileName = System.IO.Path.GetTempPath() + "Осмотр_хирурга.docx"; _fileNameOnly = "Осмотр_хирурга.docx"; byte[] bte = CurrentDocument.DocTemplate; for (; ;) { try { File.WriteAllBytes(FileName, bte); break; } catch { togle += 1; FileName = System.IO.Path.GetTempPath() + "Осмотр_хирурга" + togle + ".docx"; _fileNameOnly = "Осмотр_хирурга" + togle + ".docx"; } } TextForDoWhat = "Был открыт документ " + _fileNameOnly + ". Для сохранения изменений в документе сохраните данные в Word, закройте документ и нажмите кнопку \"Сохранить изменения\"."; Process.Start("WINWORD.EXE", FileName); } ); MessageBus.Default.Subscribe("GetHirurgOverviewtForHirurgOverviewFILENAME", GetStatementForStatementFILENAME); SetNewOverview = new DelegateCommand( () => { if (Doctors != null && Doctors.Count != 0) { if (DoctorSelectedId == -1) { MessageBus.Default.Call("CreateHirurgOverview", "", null); } else { MessageBus.Default.Call("CreateHirurgOverview", Doctors[DoctorSelectedId].ToString(), Doctors[DoctorSelectedId].doc.Id); } TextForDoWhat = "Вы создали новый документ " + _fileNameOnly; CurrentSelectDoctorPanelViewModel.PanelOpened = false; } } ); SaveWordDocument = new DelegateCommand( () => { try { if (!string.IsNullOrWhiteSpace(FileName)) { byte[] bteToBD = File.ReadAllBytes(FileName); HirurgOverview Hv = new HirurgOverview(); //bool tester = true; if (CurrentDocument.Id != 0) { Hv = Data.HirurgOverview.Get(CurrentDocument.Id); CurrentDocument.DocTemplate = bteToBD; Hv.DocTemplate = bteToBD; Hv.DoctorId = Doctors[DoctorSelectedId].doc.Id; Data.Complete(); } else { Hv.DocTemplate = bteToBD; Hv.DoctorId = Doctors[DoctorSelectedId].doc.Id; CurrentDocument.DocTemplate = bteToBD; Data.HirurgOverview.Add(Hv); Data.Complete(); CurrentDocument.Id = Hv.Id; MessageBus.Default.Call("SetIdOfOverview", null, CurrentDocument.Id); } CurrentSavePanelViewModel.PanelOpened = false; TextForDoWhat = "Изменения в " + _fileNameOnly + " были сохранены"; } } catch { MessageBox.Show("Закройте документ"); } } ); OpenFile = new DelegateCommand( () => { OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Word Documents (.docx)|*.docx|All Files (*.*)|*.*"; openFileDialog.ValidateNames = true; openFileDialog.FilterIndex = 1; if (openFileDialog.ShowDialog() == true) { _fileNameOnly = openFileDialog.SafeFileName; FileName = openFileDialog.FileName; byte[] bteToBD = File.ReadAllBytes(FileName); HirurgOverview Hv = new HirurgOverview(); if (CurrentDocument.Id != 0) { Hv = Data.HirurgOverview.Get(CurrentDocument.Id); Hv.DocTemplate = bteToBD; Hv.DoctorId = Doctors[DoctorSelectedId].doc.Id; Data.Complete(); } else { Hv.DocTemplate = bteToBD; Hv.DoctorId = Doctors[DoctorSelectedId].doc.Id; Data.HirurgOverview.Add(Hv); Data.Complete(); CurrentDocument.Id = Hv.Id; MessageBus.Default.Call("SetIdOfOverview", null, CurrentDocument.Id); } MessageBus.Default.Call("GetHirurgOverviewForHirurgOverview", null, CurrentDocument.Id); TextForDoWhat = "Был загружен документ " + _fileNameOnly; } //var img = ByteToImage(Analize.ImageByte); //int width = Convert.ToInt32(img.Width); //int height = Convert.ToInt32(img.Height); //Bitmap TestBitmap = new Bitmap(width, height); //TestBitmap.Save("TempImage.Bmp"); //TestBitmap.Dispose(); //File.WriteAllBytes("TempImage.Bmp", Analize.ImageByte); //Process.Start("TempImage.Bmp"); } ); ToCurrentPatientCommand = new DelegateCommand( () => { MessageBus.Default.Call("GetCurrentPatientId", this, CurrentPatient.Id); Controller.NavigateTo <ViewModelCurrentPatient>(); } ); }