public List <Album> GetResults(IQuerySource session) { var nameRes = session.Query <AlbumName>().Where(n => n.Value.Contains(term)) .Select(n => n.Album) .Distinct() .ToList(); var artistRes = session.Query <ArtistName>() .Where(an => an.Value.Contains(term)) .SelectMany(an => an.Artist.AllAlbums) .Select(an => an.Album) .Distinct() .ToList(); var albumRes = session.Query <Album>() .Where(an => an.OriginalRelease.CatNum.Contains(term)) .ToList(); return(nameRes.Union(artistRes).Union(albumRes) .ToList()); /*return session.Query<AlbumName>() * .Where(n => n.Value.Contains(term)) * .Select(a => a.Album) * .Where(a => * a.ArtistString.Default.Contains(term) * && a.ArtistString.Japanese.Contains(term) * && a.ArtistString.Romaji.Contains(term) * && a.ArtistString.English.Contains(term)) * .ToList();*/ }
public IQueryable <Album> Query(IQuerySource session) { /*var n = artistNames.First(); * return session.Query<ArtistName>() * .Where(an => an.Value.Contains(n)) * .SelectMany(an => an.Artist.AllAlbums) * .Select(an => an.Album) * .Distinct();*/ /*return session.Query<ArtistName>() * .Where(an => artistNames.Any(na => an.Value.Contains(na))) * .SelectMany(an => an.Artist.AllAlbums) * .Select(an => an.Album) * .Distinct(); */ if (artistNames.Length == 2) { var n1 = artistNames.ElementAt(0); var n2 = artistNames.ElementAt(1); return(session.Query <Album>().Where(a => a.AllArtists.Any(u => u.Artist.Names.Names.Any(an => an.Value.Contains(n1))) && a.AllArtists.Any(u => u.Artist.Names.Names.Any(an => an.Value.Contains(n2))))); } return(session.Query <Album>()); //return session.Query<Album>().Where(a => artistNames.All(na => a.AllArtists.Any(u => u.Artist.Names.Names.Any(a2 => a2.Value.Contains(na))))); }
public IQueryable <Album> Query(IQuerySource session) { var q = session.Query <AlbumName>(); return(FindHelpers.AddEntryNameFilter(q, string.Empty, NameMatchMode.Words, names) .Select(n => n.Album)); }
public List <Album> GetResults(IQuerySource session) { return(session.Query <AlbumTagUsage>() .Where(a => a.Tag.Name == tagName) .Select(a => a.Album) .ToList()); }
private PartialFindResult <Album> GetAlbums(AlbumQueryParams queryParams, ParsedAlbumQuery parsedQuery) { var query = CreateQuery(queryParams, parsedQuery); var ids = query .OrderBy(queryParams.SortRule, LanguagePreference) .Select(s => s.Id) .Paged(queryParams.Paging) .ToArray(); var albums = SortByIds(querySource .Query <Album>() .Where(s => ids.Contains(s.Id)) .ToArray(), ids); var count = (queryParams.Paging.GetTotalCount ? query.Count() : 0); return(new PartialFindResult <Album>(albums, count, queryParams.Common.Query, false)); }
private IQueryable <T> Query <T>() { return(querySource.Query <T>()); }
public IQueryable <Album> Query(IQuerySource session) { return(session.Query <ArtistForAlbum>() .Where(a => a.Artist.Id == artistId) .Select(a => a.Album)); }
public IQueryable <Album> Query(IQuerySource session) { return(session.Query <AlbumTagUsage>() .Where(a => a.Tag.Name == tagName) .Select(a => a.Album)); }