public static void GetDebugControlName(IFormChannelIdentifier channel, out string debugControlNamespace, out string debugControlName)
        {
            if (null == ConfigurationServices.ConfigurationSource)
            {
                throw new ConfigurationErrorsException("Missing configuration");
            }


            UiControlFactorySettings settings = ConfigurationServices.ConfigurationSource.GetSection(UiControlFactorySettings.SectionName) as UiControlFactorySettings;

            if (null == settings)
            {
                throw new ConfigurationErrorsException(string.Format("The configuration section '{0}' was not found in the configuration", UiControlFactorySettings.SectionName));
            }


            try
            {
                debugControlNamespace = settings.Channels[channel.ChannelName].DebugControlNamespace;
                debugControlName      = settings.Channels[channel.ChannelName].DebugControlName;
            }
            catch (Exception e)
            {
                throw new ConfigurationErrorsException(string.Format("The channel {0} is missing from the configuration", channel.ChannelName), e);
            }
        }
        /// <exclude />
        public static IEnumerable <string> GetControlPaths()
        {
            UiControlFactorySettings uiControlFactorySettings = ConfigurationServices.ConfigurationSource.GetSection(UiControlFactorySettings.SectionName) as UiControlFactorySettings;

            foreach (Composite.C1Console.Forms.Plugins.UiControlFactory.Runtime.ChannelConfigurationElement channelElement in uiControlFactorySettings.Channels)
            {
                foreach (NamespaceConfigurationElement namespaceElement in channelElement.Namespaces)
                {
                    foreach (UiControlFactoryData uiControlFactoryData in namespaceElement.Factories)
                    {
                        PropertyInfo propertyInfo = uiControlFactoryData.GetType().GetProperty("UserControlVirtualPath");
                        if (propertyInfo != null)
                        {
                            string path = (string)propertyInfo.GetValue(uiControlFactoryData, null);

                            yield return(path);
                        }
                    }
                }
            }


            UiContainerFactorySettings uiContainerFactorySettings = ConfigurationServices.ConfigurationSource.GetSection(UiContainerFactorySettings.SectionName) as UiContainerFactorySettings;

            foreach (Composite.C1Console.Forms.Flows.Plugins.UiContainerFactory.Runtime.ChannelConfigurationElement channelElement in uiContainerFactorySettings.Channels)
            {
                foreach (UiContainerFactoryData uiControlFactoryData in channelElement.Factories)
                {
                    PropertyInfo propertyInfo = uiControlFactoryData.GetType().GetProperty("UserControlVirtualPath");
                    if (propertyInfo != null)
                    {
                        string path = (string)propertyInfo.GetValue(uiControlFactoryData, null);

                        yield return(path);
                    }
                }
            }
        }