Use MinBy and MaxBy instead of OrderBy + First

(cherry picked from commit 6ea3d8c127eafbcf9d1b6e9338b737e91e256875)

Closes #2323
pull/2270/head
Stepan Goremykin 1 year ago committed by Bogdan
parent 06baae060d
commit a4930474a5

@ -473,12 +473,11 @@ namespace NzbDrone.Common.Disk
return mounts.Where(drive => drive.RootDirectory.PathEquals(path) ||
drive.RootDirectory.IsParentPath(path))
.OrderByDescending(drive => drive.RootDirectory.Length)
.FirstOrDefault();
.MaxBy(drive => drive.RootDirectory.Length);
}
catch (Exception ex)
{
Logger.Debug(ex, string.Format("Failed to get mount for path {0}", path));
Logger.Debug(ex, $"Failed to get mount for path {path}");
return null;
}
}

@ -33,7 +33,7 @@ namespace NzbDrone.Core.Books
if (monitorNewItems == NewItemMonitorTypes.New)
{
var newest = existingBooks.OrderByDescending(x => x.ReleaseDate ?? DateTime.MinValue).FirstOrDefault()?.ReleaseDate ?? DateTime.MinValue;
var newest = existingBooks.MaxBy(x => x.ReleaseDate ?? DateTime.MinValue)?.ReleaseDate ?? DateTime.MinValue;
return (addedBook.ReleaseDate ?? DateTime.MinValue) >= newest;
}

@ -40,7 +40,7 @@ namespace NzbDrone.Core.Books
return true;
}
var lastBook = _bookService.GetBooksByAuthor(author.Id).OrderByDescending(e => e.ReleaseDate).FirstOrDefault();
var lastBook = _bookService.GetBooksByAuthor(author.Id).MaxBy(e => e.ReleaseDate);
if (lastBook != null && lastBook.ReleaseDate > DateTime.UtcNow.AddDays(-30))
{

@ -96,7 +96,7 @@ namespace NzbDrone.Core.Download.Pending
var bookIds = decision.RemoteBook.Books.Select(e => e.Id);
var existingReports = bookIds.SelectMany(v => alreadyPendingByBook[v] ?? Enumerable.Empty<PendingRelease>())
var existingReports = bookIds.SelectMany(v => alreadyPendingByBook[v])
.Distinct().ToList();
var matchingReports = existingReports.Where(MatchingReleasePredicate(decision.RemoteBook.Release)).ToList();
@ -239,8 +239,7 @@ namespace NzbDrone.Core.Download.Pending
return authorReleases.Select(r => r.RemoteBook)
.Where(r => r.Books.Select(e => e.Id).Intersect(bookIds).Any())
.OrderByDescending(p => p.Release.AgeHours)
.FirstOrDefault();
.MaxBy(p => p.Release.AgeHours);
}
private ILookup<int, PendingRelease> CreateBookLookup(IEnumerable<PendingRelease> alreadyPending)

@ -29,16 +29,12 @@ namespace NzbDrone.Core.History
public EntityHistory MostRecentForBook(int bookId)
{
return Query(h => h.BookId == bookId)
.OrderByDescending(h => h.Date)
.FirstOrDefault();
return Query(h => h.BookId == bookId).MaxBy(h => h.Date);
}
public EntityHistory MostRecentForDownloadId(string downloadId)
{
return Query(h => h.DownloadId == downloadId)
.OrderByDescending(h => h.Date)
.FirstOrDefault();
return Query(h => h.DownloadId == downloadId).MaxBy(h => h.Date);
}
public List<EntityHistory> FindByDownloadId(string downloadId)

@ -881,7 +881,7 @@ namespace NzbDrone.Core.MetadataSource.BookInfo
book.Editions = resource.Books.Select(x => MapEdition(x)).ToList();
// monitor the most popular release
var mostPopular = book.Editions.Value.OrderByDescending(x => x.Ratings.Popularity).FirstOrDefault();
var mostPopular = book.Editions.Value.MaxBy(x => x.Ratings.Popularity);
if (mostPopular != null)
{
mostPopular.Monitored = true;

@ -153,8 +153,7 @@ namespace NzbDrone.Core.RootFolders
public RootFolder GetBestRootFolder(string path, List<RootFolder> allRootFolders)
{
return allRootFolders.Where(r => PathEqualityComparer.Instance.Equals(r.Path, path) || r.Path.IsParentPath(path))
.OrderByDescending(r => r.Path.Length)
.FirstOrDefault();
.MaxBy(r => r.Path.Length);
}
public string GetBestRootFolderPath(string path)

Loading…
Cancel
Save