feanz
1/7/2014 - 4:45 PM

Application Management

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);
		}
	}