/// <summary> /// Awaitable function that shows all controls to create a new <see cref="Article"/>.\n /// Generates a new <see cref="ArticleEditViewModel"/>, tries to get the next <see cref="ArticleID"/> and calls <see cref="AddTabContentViewModel"/> to add the viewmodel to the window.\n /// Calls <see cref="Interface.IEditObserver.ReceiveArticleEditViewModel"/> for each registered <see cref="IEditObserver"/> in this instance. /// </summary> /// <param name="sender"></param> /// <returns></returns> public async Task ReceiveNewArticleCommand(object sender) { var tempid = await ParentViewModel.Database.GetNextArticleID(); var articleEditViewModel = new ArticleView.Contextual.ArticleEditViewModel(this, tempid); ParentViewModel.AddTabContentViewModel(articleEditViewModel); articleEditViewModel.RibbonTabItem.IsSelected = true; foreach (var observer in registeredObservers) observer.ReceiveArticleEditViewModel(articleEditViewModel); }
/// <summary> /// Awaitable function that either shows all controls to modify an existing <see cref="Article"/> or loads the selected <see cref="Article"/> and uses <see cref="ReceiveData"/> of the viewmodel referenced <see cref="ReceiveRequestArticleCommand"/>.\n /// Calls <see cref="Interface.IEditObserver.ReceiveArticleEditViewModel"/> for each registered <see cref="IEditObserver"/> in this instance when <see cref="ViewModelRequestingArticle"/> is null. /// </summary> /// <param name="sender"></param> /// <returns></returns> public async Task ReceiveEditArticleCommand(object sender) { if (SelectedArticle != null) { if (ViewModelRequestingArticle == null) { var temp = await ParentViewModel.Database.GetArticle(SelectedArticle.ArticleID); var articleEditViewModel = new ArticleView.Contextual.ArticleEditViewModel(this, temp); ParentViewModel.AddTabContentViewModel(articleEditViewModel); articleEditViewModel.RibbonTabItem.IsSelected = true; foreach (var observer in registeredObservers) observer.ReceiveArticleEditViewModel(articleEditViewModel); } else { var temp = await ParentViewModel.Database.GetArticle(SelectedArticle.ArticleID); ViewModelRequestingArticle.ReceiveData(temp); ParentViewModel.SelectedContent = ViewModelRequestingArticle.TabContent; ViewModelRequestingArticle = null; } } }