/* ----------------------------------------------------------------- */ /// /// MainFacade /// /// <summary> /// オブジェクトを初期化します。 /// </summary> /// /// <param name="src">設定用オブジェクト</param> /// <param name="context">同期用オブジェクト</param> /// /* ----------------------------------------------------------------- */ public MainFacade(SettingsFolder src, SynchronizationContext context) { _dispose = new OnceAction<bool>(Dispose); src.LoadOrDefault(new LocalSettings()); this.LogInfo($"Owner:{src.Lock.UserName}@{src.Lock.MachineName} ({src.Lock.Sid})"); this.LogInfo($"User-Agent:{src.UserAgent}"); Settings = src; Settings.PropertyChanged += WhenSettingsChanged; Settings.AutoSave = true; var feeds = Settings.IO.Combine(Settings.DataDirectory, LocalSettings.FeedFileName); var cache = Settings.IO.Combine(Settings.DataDirectory, LocalSettings.CacheDirectoryName); _core = new RssSubscriber(context) { IO = Settings.IO, FileName = feeds, CacheDirectory = cache, Capacity = Settings.Shared.Capacity, IsReadOnly = Settings.Lock.IsReadOnly, UserAgent = Settings.UserAgent }; _core.Set(RssCheckFrequency.High, Settings.Shared.HighInterval); _core.Set(RssCheckFrequency.Low, Settings.Shared.LowInterval); _core.Received += WhenReceived; _checker = new UpdateChecker(Settings); Data = new MainBindableData(_core, Settings, context); }