Skip to content

Commit 615db9f

Browse files
author
JakeGinnivan
committed
Fixed talking to the database too early (again, but better this time).
1 parent b689ea5 commit 615db9f

File tree

3 files changed

+11
-8
lines changed

3 files changed

+11
-8
lines changed

src/FunnelWeb.Web/Global.asax.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.IO;
23
using System.Reflection;
34
using System.Web;
45
using System.Web.Hosting;
@@ -35,7 +36,8 @@ public class MvcApplication : HttpApplication
3536
public static void BeforeApplicationStart()
3637
{
3738
extensionsPath = HostingEnvironment.MapPath("~/bin/Extensions") ?? string.Empty;
38-
Extensibility.EnableAspNetIntegration(extensionsPath);
39+
if (Directory.Exists(extensionsPath))
40+
Extensibility.EnableAspNetIntegration(extensionsPath);
3941
}
4042

4143
private static IContainer BuildContainer()

src/FunnelWeb/Settings/SettingsModule.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using Autofac;
1+
using System;
2+
using Autofac;
23
using FunnelWeb.DatabaseDeployer;
34
using FunnelWeb.Model.Repositories;
45

@@ -29,7 +30,7 @@ protected override void Load(ContainerBuilder builder)
2930
.As<IAppHarborSettings>()
3031
.SingleInstance();
3132

32-
builder.Register(c => new SettingsProvider(c.Resolve<IAdminRepository>()))
33+
builder.Register(c => new SettingsProvider(c.Resolve<Lazy<IAdminRepository>>()))
3334
.As<ISettingsProvider>()
3435
.InstancePerLifetimeScope();
3536
}

src/FunnelWeb/Settings/SettingsProvider.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ namespace FunnelWeb.Settings
1111
public class SettingsProvider : ISettingsProvider
1212
{
1313
private readonly object @lock = new object();
14-
private readonly IAdminRepository repository;
14+
private readonly Lazy<IAdminRepository> repository;
1515
private readonly Dictionary<Type, ISettings> settingsStore = new Dictionary<Type, ISettings>();
1616

17-
public SettingsProvider(IAdminRepository repository)
17+
public SettingsProvider(Lazy<IAdminRepository> repository)
1818
{
1919
this.repository = repository;
2020
}
@@ -56,7 +56,7 @@ private void LoadSettings<T>() where T : ISettings
5656
var settings = Activator.CreateInstance<T>();
5757
settingsStore.Add(typeof(T), settings);
5858
var settingMetadata = ReadSettingMetadata<T>();
59-
var databaseSettings = repository.GetSettings().ToList();
59+
var databaseSettings = repository.Value.GetSettings().ToList();
6060

6161
foreach (var setting in settingMetadata)
6262
{
@@ -88,7 +88,7 @@ public void SaveSettings<T>(T settingsToSave) where T : ISettings
8888
settingsStore.Add(settingsType, settingsToSave);
8989

9090
var settingsMetadata = ReadSettingMetadata<T>();
91-
var databaseSettings = repository.GetSettings().ToList();
91+
var databaseSettings = repository.Value.GetSettings().ToList();
9292

9393
foreach (var setting in settingsMetadata)
9494
{
@@ -118,7 +118,7 @@ public void SaveSettings<T>(T settingsToSave) where T : ISettings
118118
}
119119
}
120120

121-
repository.Save(databaseSettings);
121+
repository.Value.Save(databaseSettings);
122122
}
123123

124124
private static IEnumerable<SettingDescriptor> ReadSettingMetadata<T>()

0 commit comments

Comments
 (0)