public async Task <IActionResult> Get([FromQuery] MeetingContentCriteria criteria)
        {
            var userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            criteria.UserId = userId;
            var viewModels = await _meetingContentManager.GetAsync(criteria);

            this.Response.AddPagination(
                viewModels.CurrentPage, viewModels.PageSize, viewModels.TotalCount, viewModels.TotalPages);

            return(Ok(viewModels));
        }
        public async Task <IActionResult> GetScheduleContents(int id, [FromQuery] MeetingContentCriteria criteria)
        {
            var userId = int.Parse(User.FindFirst(ClaimTypes.NameIdentifier).Value);

            criteria.Model.MeetingAgendaId = id;
            criteria.UserId = userId;

            var topics = await _meetingContentManager.GetScheduleContentsAsync(criteria);

            this.Response.AddPagination(
                topics.CurrentPage, topics.PageSize, topics.TotalCount, topics.TotalPages);

            return(Ok(topics));
        }
        public async Task <PagedList <MeetingContentViewModel> > GetScheduleContentsAsync(MeetingContentCriteria criteria)
        {
            try
            {
                var contents = Repository
                               .GetQuery(x => x.MeetingAgendaId == criteria.Model.MeetingAgendaId && !x.IsRemoved)
                               .OrderBy(x => x.Ordinal);


                var query = from content in contents
                            join note in UnitOfWork.MeetingNoteRepository
                            .GetQuery(x => x.UserId == criteria.UserId && !x.IsRemoved)
                            on content.Id equals note.MeetingContentId into lj
                            from note in lj.DefaultIfEmpty()
                            select new MeetingContent
                {
                    Id              = content.Id,
                    FileName        = content.FileName,
                    Ordinal         = content.Ordinal,
                    MeetingAgendaId = content.MeetingAgendaId,
                    Ratio           = content.Ratio,
                    FileBase64      = note == null ? content.FileBase64 : note.Note
                };

                var xx = query.ToList();

                return(await this.ToPagedListAsync(query, criteria.PageSize, criteria.PageNumber));
            }
            catch (Exception ex)
            {
                var a = ex.Message;
                throw ex;
            }
        }