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() )); }