public void SendApplicationsToUnknownPanel()
        {
            try
            {
                List <IHostedApplication> tabApps = new List <IHostedApplication>();

                while (Items.Count > 0)
                {
                    C1USDDockTabItem   item   = (C1USDDockTabItem)Items[0];
                    IHostedApplication tabApp = item.Tag as IHostedApplication;
                    if (tabApp != null)
                    {
                        IDesktopFeatureAccess desktop = AifServiceContainer.Instance.GetService <IDesktopFeatureAccess>();
                        if (desktop != null)
                        {
                            desktop.SendApplicationToUnknownPanel(this, tabApp);
                        }
                    }
                    if (Items.Count > 0)
                    {
                        Items.RemoveAt(0);
                    }
                }
            }
            catch
            {
            }
        }
        private C1USDDockTabItem AddApplicationToTabControl(object app)
        {
            //TabItem element = null;

            C1USDDockTabItem   element     = null;
            Image              icon        = new Image();
            IHostedApplication application = app as IHostedApplication;

            if (application != null)
            {
                string applicationName = application.ApplicationName;
                if (VerifyGlobalManagerConnection())
                {
                    Entity thisApplication = CRMWindowRouter.LoadApplicationEntity(applicationName);
                    try
                    {
                        if (thisApplication != null && thisApplication.Contains("mcs_displayname"))
                        {
                            string appNameTemp = CRMWindowRouter.ReplaceParametersInCurrentSession((string)thisApplication["mcs_displayname"]);
                            if (!String.IsNullOrEmpty(appNameTemp) && Utility.IsAllReplacementValuesReplaced(appNameTemp))
                            {
                                applicationName = appNameTemp;
                            }
                        }
                    }
                    catch { }
                }
                element = ShowApplication(app, applicationName);
                if (application == DesktopApplicationUIBase.AppWithFocus)
                {
                    this.SelectedItem = element;
                }
            }
            else if (app is System.Windows.Forms.Control)
            {
                element = ShowApplication(app, "");
                AutomationProperties.SetName(element, app.ToString() + " Tab Page");
            }
            return(element);
        }
        Object ShowApplicationOnUI(Object tabTag, UIElement child, string applicationName)
        {
            try
            {
                var controltest = (DynamicsBaseHostedControl)tabTag;
                if (this.DockMode == DockMode.Hidden)
                {
                    this.DockMode = DockMode.Floating;
                }
                VerifyGlobalManagerConnection();
                C1USDDockTabItem ti = new C1USDDockTabItem();
                ti.Tag           = tabTag;
                ti.Content       = child;
                child.Visibility = System.Windows.Visibility.Visible;
                ti.Header        = applicationName;
                Entity thisApplication = CRMWindowRouter.LoadApplicationEntity(applicationName);
                try
                {
                    if (thisApplication != null && thisApplication.Contains("uii_usercanclose"))
                    {
                        var canClose = thisApplication.Attributes["uii_usercanclose"];
                        if ((bool)canClose)
                        {
                            ti.CanUserClose = true;
                        }
                    }
                    if (thisApplication != null && thisApplication.Contains("uii_sortorder"))
                    {
                        for (int i = 0; i < Items.Count; i++)
                        {
                            if (!(((C1USDDockTabItem)Items[i]).Tag is IHostedApplication))
                            {
                                continue;
                            }
                            string appname =
                                (((C1USDDockTabItem)Items[i]).Tag as IHostedApplication).ApplicationName;
                            Entity appconfig = CRMWindowRouter.LoadApplicationEntity(appname);
                            if (appconfig != null && appconfig.Contains("uii_sortorder"))
                            {
                                if ((int)thisApplication["uii_sortorder"] < (int)appconfig["uii_sortorder"])
                                {
                                    Items.Insert(i, ti);
                                    return(ti);
                                }
                            }
                            else
                            {
                                Items.Insert(i, ti);
                                return(ti);
                            }
                        }
                    }
                }
                catch
                {
                }
                //Items.Insert

                try
                {
                    Items.Add(ti);
                }
                catch
                {
                }

                if (Items.Count == 1)
                {
                    SelectedItem = ti;
                }
                return(ti);
            }
            finally
            {
            }
        }