/// <summary> /// Get Audio details /// </summary> /// <param name="fileName"></param> /// <returns></returns> public async Task <AudioModel> GetAudioAsync(string fileName) { var audio = await _dbContext.Audios .FirstOrDefaultAsync(a => a.FileName == fileName); if (audio == null) { return(null); } return(new AudioModel { FileName = audio.FileName, Issue = audio.Issue, Priority = AudioHelpers.GetPriority(audio.Sentiment), Transcript = audio.Transcript, Created = audio.Created.ToString("dddd, dd MMMM yyyy"), Taxonomy = audio.Taxonomy?.Split(','), Status = audio.Status }); }
/// <summary> /// Get All Audios /// </summary> /// <param name="pageNumber"></param> /// <param name="pageSize"></param> /// <returns></returns> public async Task <PagedResult <List <AudioModel> > > GetPagedAudiosAsync( int pageNumber, int pageSize, Issue?issue = null, AuditStatus?status = null) { var filter = new PaginationFilter(pageNumber, pageSize); var entries = await _dbContext.Audios .Skip((filter.PageNumber - 1) *filter.PageSize) .Take(filter.PageSize) .OrderBy(x => x.Created) .ToListAsync(); if (issue.HasValue) { entries = entries.Where(x => x.Issue == issue.Value).ToList(); } if (status.HasValue) { entries = entries.Where(x => x.Status == status.Value).ToList(); } var totalRecords = await _dbContext.Audios.CountAsync(); var audios = entries.Select(audio => new AudioModel { FileName = audio.FileName, Issue = audio.Issue, Priority = AudioHelpers.GetPriority(audio.Sentiment), Transcript = audio.Transcript, Created = audio.Created.ToString("dddd, dd MMMM yyyy"), Taxonomy = audio.Taxonomy?.Split(','), Status = audio.Status }) .ToList(); return(new PagedResult <List <AudioModel> > (audios, filter.PageNumber, filter.PageSize, totalRecords)); }