Application Management
public class ApplicationManagement : IApplicationManagement
{
private readonly IEnumerable<IApplicationSetting> _settings;
public ApplicationManagement(IEnumerable<IApplicationSetting> settings)
{
_settings = settings;
try
{
_settings.ForEach(setting => setting.Initialise());
}
catch (Exception exception)
{
this.Log().Error("Error initialising application settings", exception);
throw;
}
}
public T Get<T>() where T : IApplicationSetting
{
var setting = _settings.FirstOrDefault(s => s.GetType() == typeof(T));
return setting != null ? (T)setting : default(T);
}
}