/// <summary> /// Konstruktor klasy obsugującej główne okno /// </summary> public MainWindowViewModel() { ListCategories = new ObservableCollection<Category>(); ArchiveListCategories = new ObservableCollection<Category>(); RSSrepo rssRepo = new RSSrepo(); rssRepo.GetListArchiveCategories(ArchiveListCategories); Reader = new Reader(); OpenWebsiteCommand = new RelayCommand(OpenWebsite, (m) => true); SaveAllCommand = new RelayCommand(SaveAll, (m) => true); SaveCommand = new RelayCommand(Save, (m) => true); DeleteCommand = new RelayCommand(Delete, (m) => true); GetCategories(); SelectedIndexTab = 0; SelectedIndexCategories = 0; ReadNews(); }
/// <summary> /// Odczytuje dane z bazy na podstawie kategorii i kopiuje do podanej kolekcji /// </summary> /// <param name="lineNews">Kolekcja do wczytania wiadomości</param> /// <param name="ArchiveListCategories">Kolkcja do wczytania wszystkich kategorii w archiwum</param> /// <param name="category">Docelowa kategoria</param> public void ReadBase(ObservableCollection<News> lineNews, ObservableCollection<Category> ArchiveListCategories, Category category) { IRSSrepo rssRepo = new RSSrepo(); rssRepo.GetSavedNews(lineNews, ArchiveListCategories, category.Name); }
/// <summary> /// Wywołuje funkcje do zapisywania wiadomości do bazy danych /// </summary> /// <param name="obj"></param> private void Save(object obj) { News newsSave = new News(); int index = SelectedIndexListBoxNews; if (obj is Int32) index = (int)obj; newsSave.Title = LineNews[index].Title; newsSave.Description = LineNews[index].Description; newsSave.Id = LineNews[index].Id; newsSave.UrlImage = LineNews[index].UrlImage; newsSave.Category = LineNews[index].Category; newsSave.UrlNews = LineNews[index].UrlNews; newsSave.Date = LineNews[index].Date; newsSave.Photo = GetImageAsByte(newsSave.UrlImage); RSSrepo rssRepo = new RSSrepo(); rssRepo.AddSelectedArticle(ArchiveListCategories, newsSave); }
/// <summary> /// Wywołuje funkcje usuwania wiadomości z bazy danych i usuwa ją z wyświetlanej listy /// </summary> /// <param name="obj"> id wiadomości do usunięcia</param> private void Delete(object obj) { RSSrepo rssRepo = new RSSrepo(); string id = (string)obj; rssRepo.DeleteSelectedArticle(ArchiveListCategories, id); if (LineNews.Count != 0) { LineNews.Remove(LineNews.First(n => n.Id == id)); if (SelectedIndexListBoxNews < 0) SelectedIndexListBoxNews = 0; } }