public override void OnShowReceiveMonitorOverview(object sender, EventArgs e)
        {
            ReceiveMonitorOverviewViewParameters viewParameters = null;
            bool   openInNewWindow = false;
            string favoriteId      = string.Empty;

            if (e is MenuEventArgs)
            {
                openInNewWindow = ((MenuEventArgs)e).OpenInNewWindow;
                string parameters = ((MenuEventArgs)e).Parameters;
                favoriteId = ((MenuEventArgs)e).MenuItemId;

                if (!string.IsNullOrEmpty(parameters))
                {
                    viewParameters = new ReceiveMonitorOverviewViewParameters();
                    HyperlinkHelper.MapQueryString(parameters, viewParameters);
                }
            }
            else if (e is MenuItemExecutedEventArgs)
            {
                openInNewWindow = ((MenuItemExecutedEventArgs)e).OpenInNewWindow;
                string parameters = ((MenuItemExecutedEventArgs)e).MenuItem.Parameters;
                favoriteId = ((MenuItemExecutedEventArgs)e).MenuItem.Id;

                if (!string.IsNullOrEmpty(parameters))
                {
                    viewParameters = new ReceiveMonitorOverviewViewParameters();
                    HyperlinkHelper.MapQueryString(parameters, viewParameters);
                }
            }
            else if (e is DataEventArgs <ReceiveMonitorOverviewViewParameters> )
            {
                viewParameters = ((DataEventArgs <ReceiveMonitorOverviewViewParameters>)e).Data;
            }

            ControlledWorkItem <ReceiveMonitorController> workItem = (from wi in WorkItem.WorkItems.FindByType <ControlledWorkItem <ReceiveMonitorController> >()
                                                                      where wi.Items.Get <string>("ModuleId") == ShellInteractionService.ActiveModule.Id
                                                                      select wi).LastOrDefault();

            if (workItem == null || openInNewWindow)
            {
                workItem = WorkItem.WorkItems.AddNew <ControlledWorkItem <ReceiveMonitorController> >();
                workItem.Items.Add(ShellInteractionService.ActiveModule.Id, "ModuleId");
                workItem.Controller.Run(viewParameters, favoriteId);
            }
            else
            {
                workItem.Controller.Activate(viewParameters, favoriteId);
            }
        }
        public void Activate(ReceiveMonitorOverviewViewParameters parameters, string favoriteId)
        {
            _favoriteId = favoriteId;

            if (receiveMonitorOverviewView != null && !string.IsNullOrEmpty(_favoriteId))
            {
                UXSettingsService favoriteSettingsService = WorkItem.Items.AddNew <UXSettingsService>(_favoriteId);
                favoriteSettingsService.ContainerName = _favoriteId;
                favoriteSettingsService.AddProvider(receiveMonitorOverviewView, new ReceiveMonitorControllerSettingsProvider());
                favoriteSettingsService.LoadSettings();
                WorkItem.Items.Remove(favoriteSettingsService);
            }

            Activate(parameters);
        }
 public void Run(ReceiveMonitorOverviewViewParameters parameters, string favoriteId)
 {
     _favoriteId = favoriteId;
     Run(parameters, false);
 }