public async Task SyncFavoriteListAsync(bool forceRefresh = false) { try { var fav = await CachedClient.GetUserFavoriteVolumesAsync(!IsUserFavoriteValiad || forceRefresh); if (FavoriteList == null) { FavoriteList = new ObservableCollection <FavourVolume>(fav); } else { //FavoriteList.Clear(); var olds = FavoriteList.Except(fav, new FavItemEqualityComparer()).ToArray(); foreach (var item in olds) { FavoriteList.Remove(item); } var news = fav.Except(FavoriteList, new FavItemEqualityComparer()).ToArray(); foreach (var item in fav) { if (!FavoriteList.Any(f => f.VolumeId == item.VolumeId)) { FavoriteList.Add(item); } } } } catch (Exception exception) { Debug.WriteLine("Error : Failed to Sync User Favorite : " + exception.Message); if (FavoriteList == null) { FavoriteList = new ObservableCollection <FavourVolume>(); } } }