private async Task Clicked() { TracklistTrackUpsertRequest req = new TracklistTrackUpsertRequest() { DateAdded = DateTime.Now, TrackId = SelectedTrack.TrackId, TracklistId = TracklistId }; try { if (AddTracks == true) { await _tracklistTrackService.Insert <TracklistTrack>(req); } else { await _tracklistTrackService.Update <TracklistTrack>(0, req); } Tracks.Remove(SelectedTrack); AllTracks.Remove(SelectedTrack); SelectedTrack = null; } catch (Exception ex) { await Application.Current.MainPage.DisplayAlert("Error", ex.Message, "OK"); } }
private async Task LoadArtistRelatedTracks() { var returned = await _albumService.Get <List <Album> >(new AlbumSearchRequest() { ArtistId = ThisArtistId }); var thisArtist = await _artistService.GetById <Artist>(ThisArtistId); foreach (var item in returned) { var tracksInAlbum = await _trackService.Get <List <Track> >(new TrackSearchRequest() { AlbumId = item.AlbumId }); foreach (var x in tracksInAlbum) { TrackHelperVM local = new TrackHelperVM() { AlbumId = item.AlbumId, AlbumName = item.AlbumName, ArtistId = (int)ThisArtistId, ArtistName = thisArtist.ArtistName, TrackId = x.TrackId, TrackName = x.TrackName }; Tracks.Add(local); AllTracks.Add(local); } } }
private async Task Init() { var tracksintracklist = await _tracklistTrackService.Get <List <TracklistTrack> >(new TracklistTrackSearchRequest() { TracklistId = TracklistId }); if (AddTracks == false) { foreach (var item in tracksintracklist) { var thisTrack = await _trackService.GetById <Track>(item.TrackId); var thisAlbum = await _albumService.GetById <Album>(thisTrack.AlbumId); var thisArtist = await _artistService.GetById <Artist>(thisAlbum.ArtistId); TrackHelperVM local = new TrackHelperVM() { TrackId = thisTrack.TrackId, TrackName = thisTrack.TrackName, AlbumId = thisAlbum.AlbumId, AlbumName = thisAlbum.AlbumName, ArtistId = thisArtist.ArtistId, ArtistName = thisArtist.ArtistName }; Tracks.Add(local); AllTracks.Add(local); } } }
private async Task <int> LoadSumTrackViewsForArtist(int artistId) { var allAlbums = await _albumService.Get <List <Album> >(new AlbumSearchRequest() { ArtistId = artistId }); int sum = 0; var thisArtist = await _artistService.GetById <Artist>(artistId); foreach (var item in allAlbums) { var thisAlbumTracks = await _trackService.Get <List <Track> >(new TrackSearchRequest() { AlbumId = item.AlbumId }); sum += thisAlbumTracks.Sum(a => (int)a.TrackViews); foreach (var x in thisAlbumTracks) { TrackHelperVM local = new TrackHelperVM() { AlbumId = item.AlbumId, AlbumName = item.AlbumName, ArtistId = thisArtist.ArtistId, ArtistName = thisArtist.ArtistName, TrackId = x.TrackId, TrackName = x.TrackName, TrackViews = (int)x.TrackViews }; AllTracks.Add(local); } } return(sum); }
private async Task SetWebViewSourceAndTracklistOnPage() { var ttr = await _tracklistTrackService.Get <List <TracklistTrack> >(new TracklistTrackSearchRequest() { TracklistId = ThisTracklistId }); List <Track> TracksFromTracklist = new List <Track>(); foreach (var item in ttr) { var thisTrack = await _trackService.GetById <Track>(item.TrackId); TracksFromTracklist.Add(thisTrack); var thisAlbum = await _albumService.GetById <Album>(thisTrack.AlbumId); var thisArtist = await _artistService.GetById <Artist>(thisAlbum.ArtistId); TrackHelperVM local = new TrackHelperVM() { TrackId = thisTrack.TrackId, TrackName = thisTrack.TrackName, AlbumId = thisAlbum.AlbumId, AlbumName = thisAlbum.AlbumName, ArtistId = thisArtist.ArtistId, ArtistName = thisArtist.ArtistName }; TracksInTracklist.Add(local); } TracksFromTracklist = TracksFromTracklist.OrderBy(a => Guid.NewGuid()).ToList(); WebViewSource = "https://www.youtube.com/embed/"; if (TracksFromTracklist.Count != 0) { WebViewSource += TracksFromTracklist.ElementAt(0).TrackYoutubeId + "?playlist="; foreach (var item in TracksFromTracklist) { //skipping first track since it's already in the embed if (item == TracksFromTracklist.ElementAt(0)) { continue; } WebViewSource += item.TrackYoutubeId; //skipping last element because of comma if (item == TracksFromTracklist.ElementAt(TracksFromTracklist.Count - 1)) { continue; } else { WebViewSource += ","; } } } }
private async Task SearchTracks(string searchQuery) { if (AddTracks == true) { if (string.IsNullOrWhiteSpace(searchQuery)) { await Application.Current.MainPage.DisplayAlert("Error", "Please type in the search bar", "OK"); return; } var searchResult = await _trackService.Get <List <Track> >(new TrackSearchRequest() { TrackName = searchQuery }); Tracks.Clear(); foreach (var item in searchResult) { var thisTrack = await _trackService.GetById <Track>(item.TrackId); var thisAlbum = await _albumService.GetById <Album>(thisTrack.AlbumId); var thisArtist = await _artistService.GetById <Artist>(thisAlbum.ArtistId); TrackHelperVM local = new TrackHelperVM() { TrackId = thisTrack.TrackId, TrackName = thisTrack.TrackName, AlbumId = thisAlbum.AlbumId, AlbumName = thisAlbum.AlbumName, ArtistId = thisArtist.ArtistId, ArtistName = thisArtist.ArtistName }; Tracks.Add(local); } } else { Tracks.Clear(); foreach (var item in AllTracks) { if (item.TrackName.ToLower().Contains(searchQuery.ToLower())) { Tracks.Add(item); } } } }
private async Task LoadGenreRelatedTracks() { List <Artist> artistList = new List <Artist>(); var allArtistGenre = await _artistGenreService.Get <List <ArtistGenre> >(new ArtistGenreSearchRequest() { GenreId = (int)ThisGenreId }); foreach (var item in allArtistGenre) { var thisArtist = await _artistService.GetById <Artist>(item.ArtistId); artistList.Add(thisArtist); } foreach (var item in artistList) { var albumList = await _albumService.Get <List <Album> >(new AlbumSearchRequest() { ArtistId = item.ArtistId }); foreach (var x in albumList) { var trackList = await _trackService.Get <List <Track> >(new TrackSearchRequest() { AlbumId = x.AlbumId }); foreach (var y in trackList) { TrackHelperVM local = new TrackHelperVM() { AlbumId = x.AlbumId, AlbumName = x.AlbumName, ArtistId = item.ArtistId, ArtistName = item.ArtistName, TrackId = y.TrackId, TrackName = y.TrackName }; AllTracks.Add(local); Tracks.Add(local); } } } }
private async Task LoadTracks() { var tracksReturned = await _trackService.Get <List <Model.Track> >(null); foreach (var item in tracksReturned) { TrackHelperVM local = new TrackHelperVM() { TrackId = item.TrackId, TrackName = item.TrackName, AlbumName = AllAlbums.Where(a => a.AlbumId == item.AlbumId).Select(a => a.AlbumName).FirstOrDefault(), AlbumId = item.AlbumId }; local.ArtistId = AllAlbums.Where(a => a.AlbumId == local.AlbumId).Select(a => a.ArtistId).FirstOrDefault(); local.ArtistName = AllArtists.Where(a => a.ArtistId == local.ArtistId).Select(a => a.ArtistName).FirstOrDefault(); AllTracks.Add(local); QueryTracks.Add(local); } }