using System; using System.Configuration; namespace ChadSoft.Edificator { internal abstract class WisdomHistoryBase : IWisdomHistory { private static readonly TimeSpan DefaultRecentlySentTimespan = TimeSpan.FromDays(14); internal TimeSpan RecentlySentTimespan { get { if(_recentlySentTimespan == null) { string recentTimeSpan = ConfigurationManager.AppSettings["WisdomHistory.RecentTimeSpanInDays"]; TimeSpan timeSpan; if (TimeSpan.TryParse(recentTimeSpan, out timeSpan)) _recentlySentTimespan = timeSpan; } return _recentlySentTimespan.GetValueOrDefault(DefaultRecentlySentTimespan); } set { _recentlySentTimespan = value; } } private TimeSpan? _recentlySentTimespan; public abstract bool HasBeenSentRecently(WisdomBit wisdom); public abstract void WisdomSent(WisdomBit wisdom); } }