Exemplo n.º 1
0
        private void Save()
        {
            try
              {
            var webConfigPath = this.FilePathTextbox.Text.Trim(" \"".ToCharArray());
            var buildWebConfigResult = this.BuildWebConfigResult.Checked;
            var normalizeOutput = this.NormalizeOutput.Checked;
            var requireDefaultConfiguration = this.RequireDefaultConfiguration.Checked;
            var version = this.SitecoreVersionComboBox.Text;

            var outputShowConfigFile = this.GetShowConfigFilePath(ShowconfigFileName);

            if (string.IsNullOrEmpty(outputShowConfigFile))
            {
              return;
            }

            var outputWebConfigFile = string.Empty;
            if (buildWebConfigResult)
            {
              outputWebConfigFile = this.GetShowConfigFilePath(WebConfigResultFileName);
              Assert.IsNotNull(outputWebConfigFile, "outputWebConfigFile");
            }

            Sitecore.Diagnostics.ConfigBuilder.ConfigBuilder.Build(webConfigPath, false, false).Save(outputShowConfigFile);
            if (normalizeOutput)
            {
              Sitecore.Diagnostics.ConfigBuilder.ConfigBuilder.Build(webConfigPath, false, true).Save(GetNormalizedPath(outputShowConfigFile));
            }

            if (buildWebConfigResult)
            {
              Sitecore.Diagnostics.ConfigBuilder.ConfigBuilder.Build(webConfigPath, true, false).Save(outputWebConfigFile);
              if (normalizeOutput)
              {
            Sitecore.Diagnostics.ConfigBuilder.ConfigBuilder.Build(webConfigPath, true, true).Save(GetNormalizedPath(outputWebConfigFile));
              }
            }

            if (requireDefaultConfiguration)
            {
              if (!string.IsNullOrEmpty(version))
              {
            try
            {
              var versionInfos = new ServiceClient().GetVersions("Sitecore CMS");
              var versionInfo = versionInfos.First(x => version.StartsWith(x.Name));
              var releaseInfo = versionInfo.Releases.First(x => version.StartsWith(x.Name));

              var defaultShowConfig = outputShowConfigFile + "." + version + ".xml";
              releaseInfo.Defaults.Configs.ShowConfig.Save(defaultShowConfig);
              Normalizer.Normalize(defaultShowConfig, GetNormalizedPath(defaultShowConfig));
              if (buildWebConfigResult)
              {
                var defaultWebConfigResult = outputWebConfigFile + "." + version + ".xml";
                releaseInfo.Defaults.Configs.Configuration.Save(defaultWebConfigResult);
                Normalizer.Normalize(defaultWebConfigResult, GetNormalizedPath(defaultWebConfigResult));
              }
            }
            catch (Exception ex)
            {
              // Log.Error()
            }
              }
            }

            if (this.OpenFolder.Checked && File.Exists(outputWebConfigFile))
            {
              string argument = @"/select, """ + outputWebConfigFile + @"""";
              Process.Start("explorer.exe", argument);
            }

            if (this.CloseWhenDone.Checked)
            {
              this.Close();
            }
              }
              catch (Exception ex)
              {
            MessageBox.Show("The action failed with exception. " + ex.Message + Environment.NewLine + "Find details in the ConfigBuilder.ConfigBuilder.dll.log file", "Sitecore ConfigBuilder");
            File.AppendAllText("ConfigBuilder.ConfigBuilder.dll.log", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " ERROR " + ex.GetType().FullName + Environment.NewLine + "Message: " + ex.Message + Environment.NewLine + "Stack trace:" + Environment.NewLine + ex.StackTrace + Environment.NewLine);
              }
        }