public async Task <ActionResult <PagingModelOutput <VideoCommentModelOutput> > > GetAll([FromRoute] int videoMediaId, [FromQuery][NotNegative] int offset = 0, [FromQuery][NotNegative] int limit = 50) { IEnumerable <VideoComment> videoComments = await _videoCommentData.GetAllByVideoMedia(videoMediaID : videoMediaId); IEnumerable <VideoComment> videoCommentsFiltered = videoComments.Skip(offset).Take(limit); IEnumerable <VideoCommentModelOutput> videoCommentsOutput = _mapper.Map <IEnumerable <VideoCommentModelOutput> >(videoCommentsFiltered); PagingModelOutput <VideoCommentModelOutput> result = new PagingModelOutput <VideoCommentModelOutput>() { Paging = new PagingOutput(total: videoComments.Count(), offset: offset, limit: limit), Results = videoCommentsOutput }; return(Ok(result)); }
public async Task <ActionResult <PagingModelOutput <VideoMediaModelOutput> > > GetAll([FromQuery][NotNegative] int offset = 0, [FromQuery][NotNegative] int limit = 50) { IEnumerable <VideoMedia> videoMedias = await _videoMediaData.GetAll(); IEnumerable <VideoComment> videoComments = await _videoCommentData.GetAll(); IEnumerable <VideoMedia> videoMediasFiltered = videoMedias.Skip(offset).Take(limit); IEnumerable <VideoMediaModelOutput> videoMediasOutput = _mapper.Map <IEnumerable <VideoMediaModelOutput> >(videoMediasFiltered); foreach (VideoMediaModelOutput vmOutput in videoMediasOutput) { IEnumerable <VideoComment> commentsByVideoMedia = videoComments.Where(c => c.VideoMedia?.ID == vmOutput.ID); vmOutput.Comments = _mapper.Map <IEnumerable <VideoCommentModelOutput> >(commentsByVideoMedia); } PagingModelOutput <VideoMediaModelOutput> result = new PagingModelOutput <VideoMediaModelOutput>() { Paging = new PagingOutput(total: videoMedias.Count(), offset: offset, limit: limit), Results = videoMediasOutput }; return(Ok(result)); }