public async Task ReceiveEditOrderCommand(object sender, Core.Document.PreviewDocument document) { if (document != null) { if (ViewModelRequestingDocument != null) { ViewModelRequestingDocument.ReceiveData(SelectedDocument); ParentViewModel.SelectedContent = ViewModelRequestingDocument.TabContent; ViewModelRequestingDocument = null; } else { var list = from factories in documentFactories where factories.DocumentType == document.DocumentType select factories; Core.Document.Document loadingDocument; if (list.Count() > 0) { try { var factory = list.First(); loadingDocument = factory.GetNewDocument(); loadingDocument.DocumentID = document.DocumentID; loadingDocument = await ParentViewModel.Database.GetDocument(loadingDocument); var documentEditViewModel = new UI.DocumentView.Contextual.DocumentEditViewModel(this, loadingDocument, false); foreach (var tab in factory.GetEditContentTabs()) { documentEditViewModel.EditContentTabs.Add(tab); } documentEditViewModel.ExportClass = ParentViewModel.SettingsTabViewModel.GetPreferedExportClass(loadingDocument); await documentEditViewModel.LoadData(); ParentViewModel.AddTabContentViewModel(documentEditViewModel); documentEditViewModel.RibbonTabItem.IsSelected = true; foreach (var observer in registeredObservers) observer.ReceiveDocumentEditViewModel(documentEditViewModel); } catch (Exception e) { logger.ErrorException("Error loading document. Sender was " + sender.ToString(), e); } } else { var ErrorNotification = new Controls.Notification.Notification(); ErrorNotification.ImageUrl = "..\\..\\Images\\appbar.app.remove.png"; ErrorNotification.Title = "Fehler beim Laden"; ErrorNotification.Message = "Für " + SelectedDocument.DocumentType + " existiert kein registrierter Dienst."; ParentViewModel.NotificationManager.ShowNotification(ErrorNotification); } } } }
/// <summary> /// Create a new <see cref="Document"/> /// </summary> /// <param name="sender"></param> /// <param name="DocoumentType"></param> /// <returns></returns> public async Task ReceiveNewDocumentCommand(object sender, string DocumentType) { var list = from factories in documentFactories where factories.DocumentType == DocumentType select factories; if (list.Count() > 0) { var factory = list.First(); var document = factory.GetNewDocument(); var documentEditViewModel = new UI.DocumentView.Contextual.DocumentEditViewModel(this, document, true); foreach (var tab in factory.GetEditContentTabs()) documentEditViewModel.EditContentTabs.Add(tab); documentEditViewModel.ExportClass = ParentViewModel.SettingsTabViewModel.GetPreferedExportClass(document); await documentEditViewModel.LoadData(); ParentViewModel.AddTabContentViewModel(documentEditViewModel); documentEditViewModel.RibbonTabItem.IsSelected = true; foreach (var observer in registeredObservers) observer.ReceiveDocumentEditViewModel(documentEditViewModel); } else { var ErrorNotification = new Controls.Notification.Notification(); ErrorNotification.ImageUrl = "..\\..\\Images\\appbar.app.remove.png"; ErrorNotification.Title = "Fehler beim Laden"; ErrorNotification.Message = "Für " + DocumentType + " existiert kein registrierter Dienst."; ParentViewModel.NotificationManager.ShowNotification(ErrorNotification); } }