public async Task <Pagination.PaginationResponse <Playlist> > PagePlaylists(Pagination.PaginationRequest <Playlist> request) { var user = await user_manager.GetUserAsync(http_context.HttpContext.User); var playlists = mintplayer_context.Playlists .Where(p => p.User == user); // 1) Sort var ordered_playlists = request.SortDirection == System.ComponentModel.ListSortDirection.Descending ? playlists.OrderByDescending(request.SortProperty) : playlists.OrderBy(request.SortProperty); // 2) Page var paged_playlists = ordered_playlists .Skip((request.Page - 1) * request.PerPage) .Take(request.PerPage); // 3) Convert to DTO var dto_playlists = await paged_playlists.Select(p => ToDto(p, false)).ToListAsync(); var count_playlists = await playlists.CountAsync(); return(new Pagination.PaginationResponse <Playlist>(request, count_playlists, dto_playlists)); //var playlists = await mintplayer_context.Playlists // //.Where(p => p.User == user) // .Select(p => ToDto(p, false)) // .ToListAsync(); //var count = await mintplayer_context.Playlists.CountAsync(); //return new Pagination.PaginationResponse<Playlist>(request, count, playlists); }
public async Task <Pagination.PaginationResponse <Song> > PageLikedSongs(Pagination.PaginationRequest <Song> request) { var user = await user_manager.GetUserAsync(http_context.HttpContext.User); if (user == null) { throw new UnauthorizedAccessException(); } var songs = mintplayer_context.Songs; // 1) Filter var filtered_songs = songs .Where(s => s.Likes.Any(l => l.User == user && l.DoesLike)); // 2) Sort var ordered_songs = request.SortDirection == System.ComponentModel.ListSortDirection.Descending ? filtered_songs.OrderByDescending(request.SortProperty) : filtered_songs.OrderBy(request.SortProperty); // 3) Page var paged_songs = ordered_songs .Skip((request.Page - 1) * request.PerPage) .Take(request.PerPage); // 4) Convert to DTO var dto_songs = paged_songs.Select(song => ToDto(song, false, false)); var count_songs = await filtered_songs.CountAsync(); return(new Pagination.PaginationResponse <Song>(request, count_songs, dto_songs)); }
public async Task <Pagination.PaginationResponse <Song> > PageSongs(Pagination.PaginationRequest <Song> request) { var songs = mintplayer_context.Songs; // 1) Sort var ordered_songs = request.SortDirection == System.ComponentModel.ListSortDirection.Descending ? songs.OrderByDescending(request.SortProperty) : songs.OrderBy(request.SortProperty); // 2) Page var paged_songs = ordered_songs .Skip((request.Page - 1) * request.PerPage) .Take(request.PerPage); // 3) Convert to DTO var dto_songs = await paged_songs.Select(song => ToDto(song, false, false)).ToListAsync(); var count_songs = await mintplayer_context.Songs.CountAsync(); return(new Pagination.PaginationResponse <Song>(request, count_songs, dto_songs)); //var songs = mintplayer_context.Songs // .Select(song => ToDto(song, false, false)) // .ToList(); //return new Pagination.PaginationResponse<Song>( // request, // songs.Count, // songs //); }
public async Task <Pagination.PaginationResponse <Person> > PagePeople(Pagination.PaginationRequest <Person> request) { var people = mintplayer_context.People; // 1) Sort var ordered_people = request.SortDirection == System.ComponentModel.ListSortDirection.Descending ? people.OrderByDescending(request.SortProperty) : people.OrderBy(request.SortProperty); // 2) Page var paged_people = ordered_people .Skip((request.Page - 1) * request.PerPage) .Take(request.PerPage); // 3) Convert to DTO var dto_people = paged_people.Select(person => ToDto(person, false, false)); var count_people = await people.CountAsync(); return(new Pagination.PaginationResponse <Person>(request, count_people, dto_people)); }
public async Task <Pagination.PaginationResponse <Artist> > PageArtists(Pagination.PaginationRequest <Artist> request) { var artists = mintplayer_context.Artists; // 1) Sort var ordered_artists = request.SortDirection == System.ComponentModel.ListSortDirection.Descending ? artists.OrderByDescending(request.SortProperty) : artists.OrderBy(request.SortProperty); // 2) Page var paged_artists = ordered_artists .Skip((request.Page - 1) * request.PerPage) .Take(request.PerPage); // 3) Convert to DTO var dto_artists = await paged_artists.Select(artist => ToDto(artist, false, false)).ToListAsync(); var count_artists = await mintplayer_context.Artists.CountAsync(); return(new Pagination.PaginationResponse <Artist>(request, count_artists, dto_artists)); }
public async Task <Pagination.PaginationResponse <Playlist> > PagePlaylists(Pagination.PaginationRequest <Playlist> request, ePlaylistScope playlistScope) { var user = await user_manager.GetUserAsync(http_context.HttpContext.User); IQueryable <Entities.Playlist> playlists; switch (playlistScope) { case ePlaylistScope.My: playlists = mintplayer_context.Playlists .Where(p => p.User == user); break; case ePlaylistScope.Public: playlists = mintplayer_context.Playlists .Where(p => p.Accessibility == MintPlayer.Dtos.Enums.ePlaylistAccessibility.Public); break; default: throw new ArgumentException(nameof(playlistScope)); } // 1) Sort var ordered_playlists = request.SortDirection == System.ComponentModel.ListSortDirection.Descending ? playlists.OrderByDescending(request.SortProperty) : playlists.OrderBy(request.SortProperty); // 2) Page var paged_playlists = ordered_playlists .Skip((request.Page - 1) * request.PerPage) .Take(request.PerPage); // 3) Convert to DTO var dto_playlists = await paged_playlists.Select(p => ToDto(p, false)).ToListAsync(); var count_playlists = await playlists.CountAsync(); return(new Pagination.PaginationResponse <Playlist>(request, count_playlists, dto_playlists)); }
public async Task <Pagination.PaginationResponse <Song> > PageSongs(Pagination.PaginationRequest <Song> request) { var songs = await songRepository.PageSongs(request); return(songs); }
public async Task <Pagination.PaginationResponse <Artist> > PageArtists(Pagination.PaginationRequest <Artist> request) { var artists = await artistRepository.PageArtists(request); return(artists); }
public async Task <Pagination.PaginationResponse <TagCategory> > PageTagCategories(Pagination.PaginationRequest <TagCategory> request) { var categories = await tagCategoryRepository.PageTagCategories(request); return(categories); }
public async Task <ActionResult <Pagination.PaginationResponse <Artist> > > PageFavoriteSongs([FromBody] Pagination.PaginationRequest <Song> request) { var songs = await songService.PageLikedSongs(request); return(Ok(songs)); }
public async Task <ActionResult <Pagination.PaginationResponse <TagCategory> > > PageTagCategories([FromBody] Pagination.PaginationRequest <TagCategory> request) { var categories = await tagCategoryService.PageTagCategories(request); return(Ok(categories)); }
public Task <Pagination.PaginationResponse <Song> > PageLikedSongs(Pagination.PaginationRequest <Song> request) { return(songRepository.PageLikedSongs(request)); }
public async Task <ActionResult <Pagination.PaginationResponse <Playlist> > > PagePlaylists([FromBody] Pagination.PaginationRequest <Playlist> request) { var playlists = await playlistService.PagePlaylists(request); return(Ok(playlists)); }
public async Task <ActionResult <Pagination.PaginationResponse <Person> > > PageFavoritePeople([FromBody] Pagination.PaginationRequest <Person> request) { var people = await personService.PageLikedPeople(request); return(Ok(people)); }
public async Task <ActionResult <Pagination.PaginationResponse <Artist> > > PageFavoriteArtists([FromBody] Pagination.PaginationRequest <Artist> request) { var artists = await artistService.PageLikedArtists(request); return(Ok(artists)); }
public async Task <Pagination.PaginationResponse <Person> > PagePeople(Pagination.PaginationRequest <Person> request) { var people = await personRepository.PagePeople(request); return(people); }
public Task <Pagination.PaginationResponse <Person> > PageLikedPeople(Pagination.PaginationRequest <Person> request) { return(personRepository.PageLikedPeople(request)); }
public async Task <Pagination.PaginationResponse <TagCategory> > PageTagCategories(Pagination.PaginationRequest <TagCategory> request) { var tag_categories = mintplayer_context.TagCategories; // 1) Sort var ordered_tag_categories = request.SortDirection == System.ComponentModel.ListSortDirection.Descending ? tag_categories.OrderByDescending(request.SortProperty) : tag_categories.OrderBy(request.SortProperty); // 2) Page var paged_tag_categories = ordered_tag_categories .Skip((request.Page - 1) * request.PerPage) .Take(request.PerPage); // 3) Convert to DTO var dto_tag_categories = paged_tag_categories.Select(tag_category => ToDto(tag_category, false)); var count_tag_catgegories = await mintplayer_context.TagCategories.CountAsync(); return(new Pagination.PaginationResponse <TagCategory>(request, count_tag_catgegories, dto_tag_categories)); }
public Task <Pagination.PaginationResponse <Artist> > PageLikedArtists(Pagination.PaginationRequest <Artist> request) { return(artistRepository.PageLikedArtists(request)); }