/// <summary> /// Gets a list of all categories. /// </summary> /// <returns>Returns a list of all categories.</returns> public Categories GetCategories() { lock (_categoryLock) { if (_categories != null) { return _categories; } var filename = CreateFilenameForCategory(); _categories = _categoriesDataAccess.LoadCategories(filename); if (_categories == null) { RetrieveCategories(); } return _categories; } }
/// <summary> /// Retrieves the categories from the channel 9 site. /// </summary> private void RetrieveCategories() { var tags = _categoryScraper.GetAllCategories<Tag>(); var shows = _categoryScraper.GetAllCategories<Show>(); var series = _categoryScraper.GetAllCategories<Series>(); if (_categories != null) { SetIsEnabled(tags, _categories.Tags); SetIsEnabled(shows, _categories.Shows); SetIsEnabled(series, _categories.Series); } _categories = new Categories(tags, shows, series); }