diff --git a/RMuseum/Controllers/RecitationController.cs b/RMuseum/Controllers/RecitationController.cs index adf6649c..fff5c3b8 100644 --- a/RMuseum/Controllers/RecitationController.cs +++ b/RMuseum/Controllers/RecitationController.cs @@ -30,6 +30,7 @@ namespace RMuseum.Controllers /// /// default: false, user must have narration::moderate permission to be able to see all users narrations /// default: -1, unfiltered + /// /// [HttpGet] [Authorize] @@ -37,7 +38,7 @@ namespace RMuseum.Controllers [ProducesResponseType((int)HttpStatusCode.BadRequest, Type = typeof(string))] [ProducesResponseType((int)HttpStatusCode.Forbidden, Type = typeof(string))] - public async Task Get([FromQuery] PagingParameterModel paging, bool allUsers = false, AudioReviewStatus status = AudioReviewStatus.All ) + public async Task Get([FromQuery] PagingParameterModel paging, bool allUsers = false, AudioReviewStatus status = AudioReviewStatus.All, string searchTerm = "") { Guid loggedOnUserId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "UserId").Value); Guid sessionId = new Guid(User.Claims.FirstOrDefault(c => c.Type == "SessionId").Value); @@ -60,7 +61,7 @@ namespace RMuseum.Controllers return StatusCode((int)HttpStatusCode.Forbidden); } - var res = await _audioService.GetAll(paging, allUsers ? Guid.Empty : loggedOnUserId, status); + var res = await _audioService.GetAll(paging, allUsers ? Guid.Empty : loggedOnUserId, status, searchTerm); if(!string.IsNullOrEmpty(res.ExceptionString)) return BadRequest(res.ExceptionString); diff --git a/RMuseum/RMuseum.xml b/RMuseum/RMuseum.xml index b01bb20d..7f6fe5c9 100644 --- a/RMuseum/RMuseum.xml +++ b/RMuseum/RMuseum.xml @@ -694,13 +694,14 @@ Artifact Service - + Gets audio narrations, user must have narration::moderate permission to be able to see all users narrations default: false, user must have narration::moderate permission to be able to see all users narrations default: -1, unfiltered + @@ -4989,13 +4990,14 @@ Audio Narration Service Implementation - + returns list of narrations send Guid.Empty if you want all narrations + @@ -5339,13 +5341,14 @@ Audio Narration Service - + returns list of narrations send Guid.Empty if you want all narrations + diff --git a/RMuseum/Services/IRecitationService.cs b/RMuseum/Services/IRecitationService.cs index 41155804..39fd1133 100644 --- a/RMuseum/Services/IRecitationService.cs +++ b/RMuseum/Services/IRecitationService.cs @@ -20,8 +20,9 @@ namespace RMuseum.Services /// /// send Guid.Empty if you want all narrations /// + /// /// - public Task> GetAll(PagingParameterModel paging, Guid filteredUserId, AudioReviewStatus status); + public Task> GetAll(PagingParameterModel paging, Guid filteredUserId, AudioReviewStatus status, string searchTerm); /// /// return selected narration information diff --git a/RMuseum/Services/Implementation/RecitationService.cs b/RMuseum/Services/Implementation/RecitationService.cs index f1a8147f..b93093be 100644 --- a/RMuseum/Services/Implementation/RecitationService.cs +++ b/RMuseum/Services/Implementation/RecitationService.cs @@ -30,18 +30,15 @@ namespace RMuseum.Services.Implementation /// public class RecitationService : IRecitationService { - - - - /// /// returns list of narrations /// /// /// send Guid.Empty if you want all narrations /// + /// /// - public async Task> GetAll(PagingParameterModel paging, Guid filteredUserId, AudioReviewStatus status) + public async Task> GetAll(PagingParameterModel paging, Guid filteredUserId, AudioReviewStatus status, string searchTerm) { try { @@ -53,6 +50,8 @@ namespace RMuseum.Services.Implementation (filteredUserId == Guid.Empty || a.OwnerId == filteredUserId) && (status == AudioReviewStatus.All || a.ReviewStatus == status) + && + (string.IsNullOrEmpty(searchTerm) || (!string.IsNullOrEmpty(searchTerm) && (a.AudioArtist.Contains(searchTerm) || a.AudioTitle.Contains(searchTerm) ))) ) .OrderByDescending(a => a.UploadDate) join poem in _context.GanjoorPoems