コード例 #1
0
        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);
        }