Files
LibraryApp/LibraryApp.Domain/BookCountReport.cs
T

31 lines
906 B
C#

using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain;
public class BookCountReport
{
public ShelfId ShelfId { get; }
public DateTime CountedAt { get; }
public IReadOnlyList<BookInstance> MissingInstances { get; }
public int TotalExpected { get; }
public int TotalFound { get; }
public BookCountReport(
ShelfId shelfId,
DateTime countedAt,
IReadOnlyList<BookInstance> allInstancesOnShelf,
IReadOnlyList<BookInstanceBarcode> scannedBarcodes)
{
ShelfId = shelfId;
CountedAt = countedAt;
TotalExpected = allInstancesOnShelf.Count;
var scannedSet = scannedBarcodes.Select(b => b.Barcode).ToHashSet();
MissingInstances = allInstancesOnShelf
.Where(i => !scannedSet.Contains(i.Barcode.Barcode))
.ToList();
TotalFound = TotalExpected - MissingInstances.Count;
}
}