Exemplo n.º 1
0
        public async Task <IActionResult> GetPoemSongs(int id, bool approved, PoemMusicTrackType trackType = PoemMusicTrackType.All)
        {
            RServiceResult <PoemMusicTrackViewModel[]> res =
                await _ganjoorService.GetPoemSongs(id, approved, trackType);

            if (!string.IsNullOrEmpty(res.ExceptionString))
            {
                return(BadRequest(res.ExceptionString));
            }
            return(Ok(res.Result));
        }
 /// <summary>
 /// get poem related songs
 /// </summary>
 /// <param name="id"></param>
 /// <param name="approved"></param>
 /// <param name="trackType"></param>
 /// <returns></returns>
 public async Task <RServiceResult <PoemMusicTrackViewModel[]> > GetPoemSongs(int id, bool approved, PoemMusicTrackType trackType)
 {
     return(new RServiceResult <PoemMusicTrackViewModel[]>
            (
                await _context.GanjoorPoemMusicTracks
                .Where
                (
                    t => t.PoemId == id
                    &&
                    t.Approved == approved
                    &&
                    t.Rejected == false
                    &&
                    (trackType == PoemMusicTrackType.All || t.TrackType == trackType)
                )
                .OrderBy(t => t.SongOrder)
                .Select
                (
                    t => new PoemMusicTrackViewModel()
     {
         Id = t.Id,
         PoemId = t.PoemId,
         TrackType = t.TrackType,
         ArtistName = t.ArtistName,
         ArtistUrl = t.ArtistUrl,
         AlbumName = t.AlbumName,
         AlbumUrl = t.AlbumUrl,
         TrackName = t.TrackName,
         TrackUrl = t.TrackUrl,
         Description = t.Description,
         BrokenLink = t.BrokenLink,
         GolhaTrackId = t.GolhaTrackId == null ? 0 : (int)t.GolhaTrackId,
         Approved = t.Approved,
         Rejected = t.Rejected,
         RejectionCause = t.RejectionCause
     }
                ).AsNoTracking().ToArrayAsync()
            ));
 }