public static async void SaveArticleIndexData(ArticlePageWorkMode mode, List <MalNewsUnitModel> data) { try { await Task.Run(async() => { var folder = await ApplicationData.Current.LocalFolder.CreateFolderAsync( "Articles", CreationCollisionOption.OpenIfExists); var json = JsonConvert.SerializeObject(new Tuple <DateTime, List <MalNewsUnitModel> >(DateTime.UtcNow, data)); var file = await folder.CreateFileAsync(mode == ArticlePageWorkMode.Articles ? "mal_article_index.json" : "mal_news_index.json", CreationCollisionOption.ReplaceExisting); await FileIO.WriteTextAsync(file, json); }); } catch (Exception) { //magic } }
private static async void UpdateNewsTile(ArticlePageWorkMode mode) { var news = await new MalArticlesIndexQuery(mode).GetArticlesIndex(); try { var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(mode == ArticlePageWorkMode.Articles ? ArticlesTileId : NewsTileId); updater.EnableNotificationQueue(true); updater.Clear(); foreach (var malNewsUnitModel in news.Take(5)) { var tileContent = new TileContent { Visual = new TileVisual { TileMedium = GenerateTileBindingMedium(malNewsUnitModel), TileWide = GenerateTileBindingWide(malNewsUnitModel), } }; if (!ViewModelLocator.Mobile) { tileContent.Visual.TileLarge = GenerateTileBindingLarge(malNewsUnitModel); } updater.Update(new TileNotification(tileContent.GetXml())); } } catch (Exception) { //can carsh due to unknown reasons } _tileUpdateSemaphore?.Release(); NotificationTaskManager.StartNotificationTask(BgTasks.Tiles, false); }
public MalArticlesIndexQuery(ArticlePageWorkMode mode) { _mode = mode; Request = WebRequest.Create(Uri.EscapeUriString(mode == ArticlePageWorkMode.Articles ? "http://myanimelist.net/featured" : "http://myanimelist.net/news")); Request.ContentType = "application/x-www-form-urlencoded"; Request.Method = "GET"; }
public MalArticlesIndexQuery(ArticlePageWorkMode mode) { _mode = mode; Request = WebRequest.Create( Uri.EscapeUriString(mode == ArticlePageWorkMode.Articles ? "https://myanimelist.net/featured" : "https://myanimelist.net/news")); Request.ContentType = "application/x-www-form-urlencoded"; Request.Method = "GET"; }
public static async Task <List <MalNewsUnitModel> > RetrieveArticleIndexData(ArticlePageWorkMode mode) { try { return(await DataCacheService.RetrieveData <List <MalNewsUnitModel> >(mode == ArticlePageWorkMode.Articles ? "mal_article_index.json" : "mal_news_index.json", "Articles", 1)); } catch (Exception) { //No file } return(null); }
public static async void SaveArticleIndexData(ArticlePageWorkMode mode, List <MalNewsUnitModel> data) { try { await Task.Run(async() => { await DataCacheService.SaveData(data, mode == ArticlePageWorkMode.Articles ? "mal_article_index.json" : "mal_news_index.json", "Articles"); }); } catch (Exception) { //magic } }
public static async Task <List <MalNewsUnitModel> > RetrieveArticleIndexData(ArticlePageWorkMode mode) { try { var folder = await ApplicationData.Current.LocalFolder.CreateFolderAsync("Articles", CreationCollisionOption.OpenIfExists); var file = await folder.GetFileAsync(mode == ArticlePageWorkMode.Articles? "mal_article_index.json" : "mal_news_index.json"); var data = await FileIO.ReadTextAsync(file); var tuple = JsonConvert.DeserializeObject <Tuple <DateTime, List <MalNewsUnitModel> > >(data); return(CheckForOldDataDetails(tuple.Item1, 1) ? tuple.Item2 : null); } catch (Exception) { //No file } return(null); }
public ArticlesPageTabFragment(bool initBindings, ArticlePageWorkMode mode) : base(initBindings) { _mode = mode; ViewModel = ViewModelLocator.MalArticles; }
public async void TestArticlesIndexQuery(ArticlePageWorkMode mode) { var articles = await new MalArticlesIndexQuery(mode).GetArticlesIndex(true); Assert.False(articles.Count == 0); }
private static async void UpdateNewsTile(ArticlePageWorkMode mode) { var news = await new MalArticlesIndexQuery(mode).GetArticlesIndex(); try { var updater = TileUpdateManager.CreateTileUpdaterForSecondaryTile(mode == ArticlePageWorkMode.Articles ? ArticlesTileId : NewsTileId); updater.EnableNotificationQueue(true); updater.Clear(); foreach (var malNewsUnitModel in news.Take(5)) { var tileContent = new TileContent { Visual = new TileVisual { TileMedium = GenerateTileBindingMedium(malNewsUnitModel), TileWide = GenerateTileBindingWide(malNewsUnitModel), } }; if (!ViewModelLocator.Mobile) tileContent.Visual.TileLarge = GenerateTileBindingLarge(malNewsUnitModel); updater.Update(new TileNotification(tileContent.GetXml())); } } catch (Exception) { //can carsh due to unknown reasons } _tileUpdateSemaphore?.Release(); NotificationTaskManager.StartNotificationTask(BgTasks.Tiles, false); }