private async Task LoadFavoriteChannels() { StorageFile file = null; try { file = await ApplicationData.Current.LocalFolder.GetFileAsync("favorites.txt"); } catch { } if (file != null) { using (var reader = new StreamReader(await file.OpenStreamForReadAsync())) { var favorites = await reader.ReadToEndAsync(); var array = favorites.Split(';'); foreach (var channel in AllChannels) { if (array.Contains(channel.Key)) { FavoriteChannels.Add(channel); } } } } }
void sc_GetChannelsCompleted(object sender, GetChannelsCompletedEventArgs b) { if (b.Error == null) { if (b.Result != null) { foreach (Channel chn in b.Result) { TextBlock tb = new TextBlock(); tb.Tag = chn.id; tb.Text = chn.name; Border bo = new Border(); bo.Child = tb; bo.HorizontalAlignment = HorizontalAlignment.Stretch; bo.VerticalAlignment = VerticalAlignment.Stretch; bo.Width = 150; bo.Margin = new Thickness(0); if (FavoriteChannels.Contains(chn.id)) { bo.Background = new SolidColorBrush(Colors.Green); } channels.Items.Add(bo); } } } }
public override void UpdateFavoriteRepo(string key, int channelId) { GetFavoriteFromRepo(key); if (FavoriteChannels.Contains(channelId)) { FavoriteChannels.Remove(channelId); } else { FavoriteChannels.Add(channelId); } Source[key] = FavoriteChannels; }
public override void UpdateFavoriteRepo(string key, int channelId) { GetFavoriteFromRepo(key); if (FavoriteChannels.Contains(channelId)) { FavoriteChannels.Remove(channelId); } else { FavoriteChannels.Add(channelId); } lock (Astro.Assignment.Web.Statics.StaticObjects.CacheLockKey) { ClearFavoriteFromRepo(key); Source.Add(key, FavoriteChannels, DateTimeOffset.MaxValue); } }
public async Task LoadAllChannels(bool forceDownload = false) { AllChannels.Clear(); FavoriteChannels.Clear(); StorageFile file = null; try { file = await ApplicationData.Current.LocalFolder.GetFileAsync("channels.json"); } catch { } string data = null; if (file == null || forceDownload) { data = await ChannelsHelper.DownloadJson(ChannelsHelper.CHANNELS_URL); if (data != null) { file = await ApplicationData.Current.LocalFolder.CreateFileAsync("channels.json", CreationCollisionOption.ReplaceExisting); var writer = new StreamWriter(await file.OpenStreamForWriteAsync()); await writer.WriteAsync(data); writer.Dispose(); } } else { var reader = new StreamReader(await file.OpenStreamForReadAsync()); data = await reader.ReadToEndAsync(); reader.Dispose(); } if (data == null) { return; } var channels = JsonConvert.DeserializeObject(data) as JContainer; foreach (var asset in ChannelsHelper.ChannelsAssets) { var item = new ChannelItem(); item.Key = asset.Key; item.Image = asset.Value[0]; item.Color1 = asset.Value[1]; item.Color2 = asset.Value[2]; var channel = channels.FirstOrDefault((element) => element["key"].Value <string>() == asset.Key); if (channel != null) { item.ID = channel.Value <int>("id"); item.Name = channel.Value <string>("name"); item.Description = channel.Value <string>("description"); } LoadChannelStreams(item); LoadTrackHistory(item); AllChannels.Add(item); } if (AllChannels.Count > 2) { AllChannels[0].Next = AllChannels[1]; AllChannels[AllChannels.Count - 1].Prev = AllChannels[AllChannels.Count - 2]; } for (int i = 1; i < AllChannels.Count - 1; i++) { AllChannels[i].Prev = AllChannels[i - 1]; AllChannels[i].Next = AllChannels[i + 1]; } await LoadFavoriteChannels(); }
public virtual bool IsFavoriteChannel(int channelId) { return(FavoriteChannels.Contains(channelId)); }