public RSSAtomFeed GetFeed(string id) { if (id == null) { Logger?.Log(nameof(RSSAtomFeedCollection), nameof(GetFeed), new ArgumentException($"{id} must be not-null")); } else if (string.IsNullOrEmpty(id)) { Logger?.Log(nameof(RSSAtomFeedCollection), nameof(GetFeed), new ArgumentException($"{id} must be not empty string")); } else { return(Feeds.First(feed => feed.Id == id)); } return(Feeds.First()); }
public FeedHandlerConfigWindowViewModel(LogViewer logViewer) { AddItem = ReactiveCommand.Create(() => Feeds.Add( new FeedHandlerConfig { CheckEveryMinutes = 15, Regex = ".*" })); DelItem = ReactiveCommand.Create <string>(url => Feeds.Remove(Feeds.First(f => f.Url == url))); SaveItems = ReactiveCommand.Create(async() => { await Helpers.SaveConfigFile <FeedHandler>(Feeds.ToList()); CloseWindow.OnNext(true); }); Cancel = ReactiveCommand.Create(() => CloseWindow.OnNext(false)); ViewLogs = ReactiveCommand.Create(async() => { if (Application.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) { var window = new Window { Height = 400, Width = 1200, Content = logViewer }; await window.ShowDialog(desktop.MainWindow); } }); var config = Helpers.GetConfig <FeedHandler, List <FeedHandlerConfig> >(); if (config.Count == 0) { AddItem.Execute().Subscribe(); } else { config.ForEach(c => Feeds.Add(c)); } }