New Feature Stats (#1179)

* When searching, search against normalized names.

* Added new stat fields
This commit is contained in:
Joseph Milazzo 2022-03-27 08:16:43 -05:00 committed by GitHub
parent fbb8934eef
commit 0622d8a874
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 80 additions and 16 deletions

View file

@ -37,6 +37,7 @@ public interface ILibraryRepository
Task<IEnumerable<Library>> GetLibrariesForUserIdAsync(int userId);
Task<LibraryType> GetLibraryTypeAsync(int libraryId);
Task<IEnumerable<Library>> GetLibraryForIdsAsync(IList<int> libraryIds);
Task<int> GetTotalFiles();
}
public class LibraryRepository : ILibraryRepository
@ -116,6 +117,11 @@ public class LibraryRepository : ILibraryRepository
.ToListAsync();
}
public async Task<int> GetTotalFiles()
{
return await _context.MangaFile.CountAsync();
}
public async Task<IEnumerable<LibraryDto>> GetLibraryDtosAsync()
{
return await _context.Library

View file

@ -25,6 +25,7 @@ public interface IReadingListRepository
void Remove(ReadingListItem item);
void BulkRemove(IEnumerable<ReadingListItem> items);
void Update(ReadingList list);
Task<int> Count();
}
public class ReadingListRepository : IReadingListRepository
@ -43,6 +44,11 @@ public class ReadingListRepository : IReadingListRepository
_context.Entry(list).State = EntityState.Modified;
}
public async Task<int> Count()
{
return await _context.ReadingList.CountAsync();
}
public void Remove(ReadingListItem item)
{
_context.ReadingListItem.Remove(item);

View file

@ -276,6 +276,7 @@ public class SeriesRepository : ISeriesRepository
{
var result = new SearchResultGroupDto();
var searchQueryNormalized = Parser.Parser.Normalize(searchQuery);
var seriesIds = _context.Series
.Where(s => libraryIds.Contains(s.LibraryId))
@ -299,6 +300,7 @@ public class SeriesRepository : ISeriesRepository
.Where(s => EF.Functions.Like(s.Name, $"%{searchQuery}%")
|| EF.Functions.Like(s.OriginalName, $"%{searchQuery}%")
|| EF.Functions.Like(s.LocalizedName, $"%{searchQuery}%")
|| EF.Functions.Like(s.NormalizedName, $"%{searchQueryNormalized}%")
|| (hasYearInQuery && s.Metadata.ReleaseYear == yearComparison))
.Include(s => s.Library)
.OrderBy(s => s.SortName)
@ -317,7 +319,7 @@ public class SeriesRepository : ISeriesRepository
result.Collections = await _context.CollectionTag
.Where(s => EF.Functions.Like(s.Title, $"%{searchQuery}%")
|| EF.Functions.Like(s.NormalizedTitle, $"%{searchQuery}%"))
|| EF.Functions.Like(s.NormalizedTitle, $"%{searchQueryNormalized}%"))
.Where(s => s.Promoted || isAdmin)
.OrderBy(s => s.Title)
.AsNoTracking()