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");
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
        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);
                    }
                }
            }
        }
Beispiel #7
0
        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);
            }
        }