protected override async Task Archive(ReaderItem item) { if (!AuthenticationService.IsLoggedInToPocket) { return; } var failed = false; try { if (!await _pocketClient.Archive(item.Id)) { failed = true; } } catch (Exception ex) { Log.ErrorException("PocketArchiveMessage", ex); failed = true; } if (!failed) { var itemToDelete = Items.FirstOrDefault(x => x.Id == item.Id); if (itemToDelete == null) { return; } Items.Remove(itemToDelete); CacheService.SavePocketItems(Items).ConfigureAwait(false); await CacheService.DeleteArticle(item); } }
/// <summary> /// Moves Article from pocket to list /// </summary> /// <returns></returns> public Article MoveArticleFromPocketByTag(string tag) { logger.LogDebug($"Starting downloading article for tag:{tag}"); var items = pocketClient.Get(state: State.unread, tag: tag, sort: Sort.newest); items.Wait(); var item = items.Result.FirstOrDefault(); if (item == null) { logger.LogWarning($"Tag {tag} has no more articles"); return(null); } var id = item.ID; logger.LogInformation($"Article ID :{id}"); var article = PocketMapper.Map(item); #if !TEST pocketClient.Archive(id); #endif return(article); }