コード例 #1
0
        /// <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
            });
        }
コード例 #2
0
        /// <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));
        }