public override void Init()
        {
            var configRequest = new ConfigurationRequest(DesignScope.Current?.ServiceProvider);

            DesignerExtensions.LoadConfiguration(this, configRequest);
        }
Example #2
0
        public static void LoadConfiguration(this IConfiguration target, ConfigurationRequest request)
        {
            ArgumentValidation.NotNull("configuration", target);
            ArgumentValidation.NotNull("request", request);
            IVsHierarchy hier          = VsHelper.GetCurrentHierarchy(request.ServiceProvider);
            Project      proj          = VsHelper.ToDteProject(hier);
            string       filename      = proj.FileName;
            string       fullname      = proj.FullName;
            string       webConfigPath = null;

            foreach (var item in proj.ProjectItems)
            {
                var pItem = ((ProjectItem)item);
                if (pItem.Name == "Web.config" /* || pItem.Name == "App.config"*/)
                {
                    for (short i = 0; i < pItem.FileCount; i++)
                    {
                        var ifilename = pItem.FileNames[i];
                        webConfigPath = ifilename;
                        break;
                    }
                }
                if (webConfigPath != null)
                {
                    break;
                }
            }

            try
            {
                if (webConfigPath != null)
                {
                    string root = webConfigPath.Substring(0, webConfigPath.LastIndexOf(Path.DirectorySeparatorChar));
                    WebConfigurationFileMap fileMap = CreateFileMap(root);
                    var config = System.Web.Configuration.WebConfigurationManager.OpenMappedWebConfiguration(fileMap, "/web.config");

                    if ((target.Dependencies & ConfigurationDependency.ConnectionString) == ConfigurationDependency.ConnectionString)
                    {
                        var connectionString = config.ConnectionStrings.ConnectionStrings[request.ConnectionStringName];
                        if (connectionString != null)
                        {
                            target.ConnectionString = connectionString.ConnectionString;
                        }
                        else
                        {
                            MessageBox.Show($"Connection String not found {request.ConnectionStringName}");
                        }
                    }

                    if ((target.Dependencies & ConfigurationDependency.StyleSheets) == ConfigurationDependency.StyleSheets)
                    {
                        var section = (Configuration.WebSection)config.GetSection("webpx/web");
                        target.StyleSheets = WebResourceManagement.GetStyleSheets(section);
                    }
                }
                else
                {
                    MessageBox.Show("Web Config Not Found!");
                }
            }
            catch (System.Exception ex)
            {
                StringBuilder sb = new StringBuilder();
                sb.AppendFormat("{0}{1}", ex.Message, Environment.NewLine);
                sb.AppendFormat("{0}{1}", ex.StackTrace, Environment.NewLine);
                MessageBox.Show(sb.ToString(), ex.GetType().FullName);
            }
        }