/// <summary> /// The event-handler that is invoked by the subscription that listens for updates /// on the <see cref="Session"/> that is being represented by the view-model /// </summary> /// <param name="sessionChange"> /// The payload of the event that is being handled /// </param> private void SessionChangeEventHandler(SessionEvent sessionChange) { if (this.FluentRibbonManager == null) { return; } if (!this.FluentRibbonManager.IsActive) { return; } if (sessionChange.Status == SessionStatus.Open) { var session = sessionChange.Session; var siteDirectory = session.RetrieveSiteDirectory(); this.domainOfExpertiseBrowserViewModel = new DomainOfExpertiseBrowserViewModel(session, siteDirectory, this.ThingDialogNavigationService, this.PanelNavigationService, this.DialogNavigationService, this.PluginSettingsService); this.modelBrowserViewModel = new ModelBrowserViewModel(session, siteDirectory, this.ThingDialogNavigationService, this.PanelNavigationService, this.DialogNavigationService, this.PluginSettingsService); this.naturalLanguageBrowserViewModel = new NaturalLanguageBrowserViewModel(session, siteDirectory, this.ThingDialogNavigationService, this.PanelNavigationService, this.DialogNavigationService, this.PluginSettingsService); this.organizationBrowserViewModel = new OrganizationBrowserViewModel(session, siteDirectory, this.ThingDialogNavigationService, this.PanelNavigationService, this.DialogNavigationService, this.PluginSettingsService); this.personBrowserViewModel = new PersonBrowserViewModel(session, siteDirectory, this.ThingDialogNavigationService, this.PanelNavigationService, this.DialogNavigationService, this.PluginSettingsService); this.roleBrowserViewModel = new RoleBrowserViewModel(session, siteDirectory, this.ThingDialogNavigationService, this.PanelNavigationService, this.DialogNavigationService, this.PluginSettingsService); this.siteRdlBrowserViewModel = new SiteRdlBrowserViewModel(session, siteDirectory, this.ThingDialogNavigationService, this.PanelNavigationService, this.DialogNavigationService, this.PluginSettingsService); this.Session = session; } if (sessionChange.Status == SessionStatus.Closed) { this.CloseAll(); this.Session = null; } }
public void VerifyThatRowsArePopulated() { var viewModel = new SiteRdlBrowserViewModel(this.session.Object, this.siteDir, null, null, null, null); Assert.AreEqual(3, viewModel.SiteRdls.Count); Assert.That(viewModel.Caption, Is.Not.Null.Or.Empty); Assert.That(viewModel.ToolTip, Is.Not.Null.Or.Empty); }
public void VerifyThatDiposeWorks() { var viewModel = new SiteRdlBrowserViewModel(this.session.Object, this.siteDir, null, null, null, null); viewModel.Dispose(); Assert.IsNull(viewModel.Thing); }
public void VerifyThatCreateCommandWorks() { this.cache.TryAdd(new CacheKey(this.siteDir.Iid, null), new Lazy <Thing>(() => this.siteDir)); this.permissionService.Setup(x => x.CanWrite(It.IsAny <ClassKind>(), It.IsAny <SiteDirectory>())).Returns(true); var viewModel = new SiteRdlBrowserViewModel(this.session.Object, this.siteDir, this.thingDialogNavigationService.Object, null, null, null); viewModel.ComputePermission(); Assert.IsTrue(viewModel.CanCreateSiteRdl); viewModel.PopulateContextMenu(); Assert.AreEqual(1, viewModel.ContextMenu.Count); viewModel.CreateCommand.Execute(null); this.thingDialogNavigationService.Verify(x => x.Navigate(It.IsAny <SiteReferenceDataLibrary>(), It.IsAny <IThingTransaction>(), this.session.Object, true, ThingDialogKind.Create, this.thingDialogNavigationService.Object, It.IsAny <SiteDirectory>(), null)); }
/// <summary> /// Close all the panels and dispose of them /// </summary> private void CloseAll() { this.PanelNavigationService.Close(this.domainOfExpertiseBrowserViewModel, false); this.domainOfExpertiseBrowserViewModel = null; this.PanelNavigationService.Close(this.modelBrowserViewModel, false); this.modelBrowserViewModel = null; this.PanelNavigationService.Close(this.naturalLanguageBrowserViewModel, false); this.naturalLanguageBrowserViewModel = null; this.PanelNavigationService.Close(this.organizationBrowserViewModel, false); this.organizationBrowserViewModel = null; this.PanelNavigationService.Close(this.personBrowserViewModel, false); this.personBrowserViewModel = null; this.PanelNavigationService.Close(this.roleBrowserViewModel, false); this.roleBrowserViewModel = null; this.PanelNavigationService.Close(this.siteRdlBrowserViewModel, false); this.siteRdlBrowserViewModel = null; }
public void VerifyThatEventAreCaught() { var viewModel = new SiteRdlBrowserViewModel(this.session.Object, this.siteDir, null, null, null, null); var rdl = new SiteReferenceDataLibrary(Guid.NewGuid(), null, this.uri) { Name = "rdl0", ShortName = "0", Container = this.siteDir }; this.siteDir.SiteReferenceDataLibrary.Add(rdl); this.revInfo.SetValue(this.siteDir, 10); CDPMessageBus.Current.SendObjectChangeEvent(this.siteDir, EventKind.Updated); Assert.AreEqual(4, viewModel.SiteRdls.Count); this.siteDir.SiteReferenceDataLibrary.Remove(rdl); this.revInfo.SetValue(this.siteDir, 20); CDPMessageBus.Current.SendObjectChangeEvent(this.siteDir, EventKind.Updated); Assert.AreEqual(3, viewModel.SiteRdls.Count); var rdl21 = viewModel.SiteRdls.SingleOrDefault(x => x.Name == "rdl21" && x.ShortName == "21" && x.RequiredRdlShortName == "2"); Assert.IsNotNull(rdl21); }