private EnvironmentState GetEnvironmentState() { var qSetExplorerActiveItem = _primaryControls.GetQSetExplorerActiveItem(); //ascertain the state of the environment EnvironmentState environmentState = new EnvironmentState(); environmentState.IsQSetOpen = _primaryControls.IsQSetExplorerOpen; environmentState.IsQSetDirty = environmentState.IsQSetOpen && _primaryControls.IsQSetExplorerDirty; environmentState.IsQSetItemActive = (environmentState.IsQSetOpen && qSetExplorerActiveItem != null); if (environmentState.IsQSetItemActive) { environmentState.IsQSetActiveItemQueue = qSetExplorerActiveItem is QSetQueueItem; environmentState.IsQSetActiveItemFolder = qSetExplorerActiveItem is QSetFolderItem; environmentState.IsQSetActiveItemMachine = qSetExplorerActiveItem is QSetMachineItem; environmentState.IsQSetActiveItemQSet = qSetExplorerActiveItem is QSetModel; environmentState.IsQSetActiveItemQueue = qSetExplorerActiveItem is QSetQueueItem; environmentState.IsQSetActiveItemWebService = qSetExplorerActiveItem is QSetWebServiceItem; if (qSetExplorerActiveItem.ParentItem != null) { environmentState.IsQSetParentItemMachine = qSetExplorerActiveItem.ParentItem is QSetMachineItem; environmentState.IsQSetParentItemQSet = qSetExplorerActiveItem.ParentItem is QSetModel; } } environmentState.IsMessageBrowserActive = _primaryControls.HasActiveMessageBrowser(); if (environmentState.IsMessageBrowserActive) { environmentState.ActiveMessageBrowserSelectedMessageCount = _primaryControls.GetActiveMessageBrowser().SelectedItems.Count; environmentState.IsMessageBrowserQueueChildOfActiveQSetItem = environmentState.IsQSetActiveItemFolder && ((QSetFolderItem)_primaryControls.GetQSetExplorerActiveItem()) .ChildItems .Exists((_primaryControls.GetActiveMessageBrowser()).QSetQueueItem.Name); } return(environmentState); }