Ejemplo n.º 1
0
        private async Task LoadDiscover()
        {
            (int apiStatus, var respond) = await RequestsAsync.Common.GetDiscoverAsync().ConfigureAwait(false);

            if (apiStatus == 200)
            {
                if (respond is DiscoverObject result)
                {
                    if (result.randoms?.Recommended != null && result.randoms?.Recommended?.Count > 0)
                    {
                        RecommendedList = new ObservableCollection <SoundDataObject>(result.randoms?.Recommended);
                    }

                    if (result.newReleases != null && result.newReleases.Value.NewReleasesClass.Data?.Count > 0)
                    {
                        NewReleasesSoundAdapter.SoundsList = new ObservableCollection <SoundDataObject>(result.newReleases.Value.NewReleasesClass.Data);
                    }

                    SqLiteDatabase dbDatabase = new SqLiteDatabase();
                    RecentlyPlayedSoundAdapter.SoundsList = dbDatabase.Get_PublicRecentlyPlayedSound();
                    dbDatabase.Dispose();

                    if (result.recentlyPlayed != null && result.recentlyPlayed.Value.RecentlyPlayedClass.Data?.Count > 0)
                    {
                        if (RecentlyPlayedSoundAdapter.SoundsList.Count > 0)
                        {
                            var newItemList = result.recentlyPlayed.Value.RecentlyPlayedClass.Data.Where(c => !RecentlyPlayedSoundAdapter.SoundsList.Select(fc => fc.Id).Contains(c.Id)).ToList();
                            if (newItemList.Count > 0)
                            {
                                ListUtils.AddRange(RecentlyPlayedSoundAdapter.SoundsList, newItemList);
                            }
                        }
                        else
                        {
                            RecentlyPlayedSoundAdapter.SoundsList = new ObservableCollection <SoundDataObject>(result.recentlyPlayed.Value.RecentlyPlayedClass.Data);
                        }

                        var soundDataObjects = RecentlyPlayedSoundAdapter.SoundsList?.Reverse();
                        Console.WriteLine(soundDataObjects);

                        var list = RecentlyPlayedSoundAdapter.SoundsList.OrderBy(o => o.Views);
                        RecentlyPlayedSoundAdapter.SoundsList = new ObservableCollection <SoundDataObject>(list);
                    }

                    if (result.mostPopularWeek != null && result.mostPopularWeek.Value.MostPopularWeekClass?.Data?.Count > 0)
                    {
                        PopularSoundAdapter.SoundsList = new ObservableCollection <SoundDataObject>(result.mostPopularWeek.Value.MostPopularWeekClass?.Data);
                    }
                }
            }
            else
            {
                Methods.DisplayReportResult(Activity, respond);
            }

            Activity.RunOnUiThread(ShowEmptyPage);
        }