-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathSearchAndNavigationTestModule.cs
91 lines (72 loc) · 3.62 KB
/
SearchAndNavigationTestModule.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
using EPiServer.Framework.Configuration;
using EPiServer.Framework.Initialization;
using Lorem.Test.Framework.Optimizely.CMS.Commands;
using Lorem.Test.Framework.Optimizely.CMS.Modules;
using Lorem.Test.Framework.Optimizely.SearchAndNavigation.Configuration;
using System.Collections.Generic;
using System.Configuration;
namespace Lorem.Test.Framework.Optimizely.SearchAndNavigation.Modules
{
public class SearchAndNavigationTestModule
: ITestModule
{
public void BeforeInitialize(InitializationEngine engine)
{
CopyConfigurationFromWebConfigToAppConfig();
}
public void AfterInitialize(InitializationEngine engine)
{
}
private void CopyConfigurationFromWebConfigToAppConfig()
{
CopyEpiserverFindConfigurationSection();
CopyEPiServerFindCmsConfigurationSection();
CopyEPiServerDBConnectionString();
}
private void CopyEpiserverFindConfigurationSection()
{
FileConfigurationSource instance = (FileConfigurationSource)ConfigurationSource.Instance;
var episerverFindSection = (EPiServer.Find.Configuration)instance.ConfigurationInstance.GetSection("episerver.find");
var currentAppConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
if(currentAppConfig.AppSettings.Settings["episerver:FindServiceUrl"] != null)
{
currentAppConfig.AppSettings.Settings.Remove("episerver:FindServiceUrl");
}
if (currentAppConfig.AppSettings.Settings["episerver:FindDefaultIndex"] != null)
{
currentAppConfig.AppSettings.Settings.Remove("episerver:FindDefaultIndex");
}
currentAppConfig.AppSettings.Settings.Add("episerver:FindServiceUrl", episerverFindSection.ServiceUrl);
currentAppConfig.AppSettings.Settings.Add("episerver:FindDefaultIndex", episerverFindSection.DefaultIndex);
currentAppConfig.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
private void CopyEPiServerFindCmsConfigurationSection()
{
FileConfigurationSource instance = (FileConfigurationSource)ConfigurationSource.Instance;
var currentAppConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var episerverFindCmsSection = new EPiServerFindCmsConfigurationSection(instance.ConfigurationInstance.GetSection("episerver.find.cms"))
{
DisableEventedIndexing = true
};
currentAppConfig.Sections.Remove("episerver.find.cms");
currentAppConfig.Sections.Add("episerver.find.cms", episerverFindCmsSection);
currentAppConfig.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("episerver.find.cms");
}
private void CopyEPiServerDBConnectionString()
{
FileConfigurationSource instance = (FileConfigurationSource)ConfigurationSource.Instance;
var currentAppConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
currentAppConfig.ConnectionStrings.ConnectionStrings.Add(
instance.ConfigurationInstance.ConnectionStrings.ConnectionStrings["EPiServerDB"]
);
currentAppConfig.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("connectionStrings");
}
public IEnumerable<IClearCommand> Reset()
{
return new List<IClearCommand>();
}
}
}