public async Task <SearchResult <Album> > SearchAsync( SearchAlbumRequest request, CancellationToken cancellationToken) { FilterDefinition <Album> filter = Builders <Album> .Filter.Empty; if (!string.IsNullOrWhiteSpace(request.SearchText)) { filter &= Builders <Album> .Filter.Regex( x => x.Title, new BsonRegularExpression($".*{Regex.Escape(request.SearchText)}.*", "i")); } if (request.Persons is { } persons&& persons.Any()) { FilterDefinition <AlbumPerson> personFilter = Builders <AlbumPerson> .Filter .In(x => x.PersonId, persons); filter &= Builders <Album> .Filter.ElemMatch(x => x.Persons, personFilter); } IFindFluent <Album, Album>?cursor = _mediaStoreContext.Albums.Find(filter); long totalCount = await cursor.CountDocumentsAsync(cancellationToken); List <Album> medias = await cursor .Skip(request.PageNr *request.PageSize) .Limit(request.PageSize) .ToListAsync(); return(new SearchResult <Album>(medias, (int)totalCount)); }
public List <SongList> SearchAlbum(SearchAlbumRequest request) { var AlbumName = request.Album; if (AlbumName != null) { var song = _db.SongLists.Where(a => a.Album.Contains(request.Album)).ToList(); return(song); } return(null); }
public async Task <SearchResult <Album> > SearchAlbumsAsync( SearchAlbumRequest input, CancellationToken cancellationToken) { return(await _albumService.SearchAsync(input, cancellationToken)); }
public IActionResult SearchAlbum(SearchAlbumRequest data) { return(Ok(repository.SearchAlbum(data))); }