public async Task <ObservableCollection <PlaylistModelDtoUI> > GetPlaylist(int idDeezer) { try { // request HttpClient httpClient = new HttpClient(); HttpResponseMessage httpResponseMessage = await httpClient.GetAsync("https://api.deezer.com/user/" + idDeezer + "/playlists"); string content = await httpResponseMessage.Content.ReadAsStringAsync(); // deserialise PlaylistsModelDtoFromDeezer playlistsFromDeezer = Deserialize(content); // transform dtofromschrek to entity List <PlaylistEntity> playlistsEnity = new List <PlaylistEntity>(); foreach (PlaylistModelDtoFromDeezer playlist in playlistsFromDeezer.playlists) { PlaylistEntity playlistEntity = new PlaylistEntity(); playlistEntity.Title = playlist.Title; playlistEntity.Duration = playlist.Duration; playlistsEnity.Add(playlistEntity); } // Save Entity ServiceLocator.GetService <Database>().Save(playlistsEnity); return(GetPlaylistFromCache()); } catch (HttpRequestException) { throw new AccessDeezerException(); } }
public PlaylistEntity GetChannels() { var channels = new[] { new Channel(-1, "Первый канал", "http://localhost:3000", "Новости", new ChannelAttributes(null, "https://webarmen.com/my/iptv/uploads/icon/2.png", null, null)), new Channel(-1, "Первый канал HD", "http://localhost:3001", "Новости", new ChannelAttributes(null, "https://webarmen.com/my/iptv/uploads/icon/154.png", null, null)), new Channel(-1, "Россия 1 HD", "http://localhost:3003", "Новости", new ChannelAttributes(null, "https://webarmen.com/my/iptv/uploads/icon/1.png", null, null)), }; var playlist = new PlaylistEntity(sampleChannelsId, channels, "sample playlist"); var retrievedPlaylist = repository.FindById(sampleChannelsId); if (retrievedPlaylist != null) { repository.Update(playlist); return(playlist); } repository.Insert(playlist); return(playlist); }
static void MigrateLocalMylistToPlaylistRepository(PlaylistRepository playlistRepository) { var groups = LocalMylistDb.GetLocalMylistGroups(); if (groups.Count > 0) { System.Diagnostics.Debug.WriteLine("start migrating LocalMylist."); foreach (var legacyLocalPlaylist in groups) { var newPlaylist = new PlaylistEntity() { Id = LiteDB.ObjectId.NewObjectId().ToString(), Label = legacyLocalPlaylist.Label, Count = legacyLocalPlaylist.Items.Count, PlaylistOrigin = Interfaces.PlaylistOrigin.Local }; playlistRepository.Upsert(newPlaylist); playlistRepository.AddItems(newPlaylist.Id, legacyLocalPlaylist.Items); LocalMylistDb.Remove(legacyLocalPlaylist); System.Diagnostics.Debug.WriteLine($"migrated: {newPlaylist.Label} ({newPlaylist.Count})"); } System.Diagnostics.Debug.WriteLine("migrating LocalMylist done."); } }
public void Delete() { var playlistName = "default"; var playlist = new PlaylistEntity(null, playlistName); repo.Delete(playlist.Id); repo.FindById(playlist.Id).Should().Be(null); }
public void FindById() { var playlistName = "default"; var playlist = new PlaylistEntity(null, playlistName); repo.Insert(playlist); repo.FindById(playlist.Id).Should().NotBe(null); }
/// <summary> /// Saves the last playlist. /// </summary> /// <param name="playlist">The playlist.</param> /// <returns>An async task.</returns> public Task ChangeLastPlaylistAsync(PlaylistEntity playlist) { if (!Equals(this.LastPlaylist, playlist)) { this.LastPlaylist = playlist; return(this.lastPlaylistChangeHandler.SetLastPlaylistAsync(playlist)); } return(Task.CompletedTask); }
public IActionResult Create() { var playlistEntity = new PlaylistEntity { Name = "Новый плейлист", }; repository.Insert(playlistEntity); return(Ok(playlistEntity)); }
private LocalPlaylist CreatePlaylist_Internal(string label) { var entity = new PlaylistEntity() { Id = LiteDB.ObjectId.NewObjectId().ToString(), Label = label, PlaylistOrigin = PlaylistItemsSourceOrigin.Local }; _playlistRepository.UpsertPlaylist(entity); _playlistIdToEntity.Add(entity.Id, entity); var playlist = new LocalPlaylist(entity.Id, label, _playlistRepository, _nicoVideoProvider, WeakReferenceMessenger.Default); HandleItemsChanged(playlist); _playlists.Add(playlist); return(playlist); }
public void Update() { var playlistName = "default"; var playlist = repo.Insert(new PlaylistEntity(null, playlistName)); var channels = new[] { new Channel(-1, "Первый канал", "http://localhost:3000"), new Channel(-1, "Второй канал", "http://localhost:3001"), new Channel(-1, "Четвертый канал", "http://localhost:3003"), }; playlistName = "updated"; var newPlaylist = new PlaylistEntity(playlist.Id, channels, playlistName); repo.Update(newPlaylist); var retrievedPlaylist = repo.FindById(playlist.Id); retrievedPlaylist.Channels.Should().HaveCount(3); retrievedPlaylist.Name.Should().Be(playlistName); }
private LocalPlaylist CreatePlaylist_Internal(string label) { var entity = new PlaylistEntity() { Id = LiteDB.ObjectId.NewObjectId().ToString(), Count = 0, Label = label, PlaylistOrigin = PlaylistOrigin.Local }; _playlistRepository.Upsert(entity); _playlistIdToEntity.Add(entity.Id, entity); var playlist = new LocalPlaylist(entity.Id, _playlistRepository) { Label = label, }; HandleItemsChanged(playlist); _playlists.Add(playlist); return(playlist); }
/// <summary> /// Sets the last playlist. /// </summary> /// <param name="playlist">The playlist.</param> public void SetLastPlaylist(PlaylistEntity playlist) { this.playlist = playlist; }
/// <summary> /// Sets the last playlist. /// </summary> /// <param name="playlistEntity">The playlist.</param> /// <returns> /// An async task. /// </returns> public async Task SetLastPlaylistAsync(PlaylistEntity playlistEntity) { this.lastPlaylistRepository.SetLastPlaylist(playlistEntity); await this.lastPlaylistRepository.SaveAsync().ConfigureAwait(false); }
public void Update(PlaylistEntity playlist) { playlistCollection.ReplaceOne(p => playlist.Id == p.Id, playlist); }
public PlaylistEntity Insert(PlaylistEntity playlist) { playlistCollection.InsertOne(playlist); return(playlist); }