56 lines
2.5 KiB
C#
56 lines
2.5 KiB
C#
using LibraryApp.Domain.Entities;
|
|
|
|
namespace LibraryApp.Domain.Repositories;
|
|
|
|
public interface IBookRepository
|
|
{
|
|
public Task<Result<Book>> GetAsync(BookId id);
|
|
public Task<Result<Book>> UpdateAsync(Book book);
|
|
public Task<Result<List<Book>>> GetAllAsync(int pageNumber, int pageSize);
|
|
public Task<Result<Book>> AddAsync(Book book);
|
|
public Task<Result> DeleteAsync(BookId id);
|
|
}
|
|
|
|
public interface IBookInstanceRepository
|
|
{
|
|
public Task<Result<BookInstance>> GetByIdAsync(BookInstanceId id);
|
|
public Task<Result<BookInstance>> GetByBarcodeAsync(BookInstanceBarcode barcode);
|
|
public Task<Result<List<BookInstance>>> GetAllByShelfIdAsync(ShelfId shelfId);
|
|
public Task<Result<List<BookInstance>>> GetAllByStatusAsync(BookInstanceStatus status);
|
|
public Task<Result<BookInstance>> UpdateAsync(BookInstance bookInstance);
|
|
public Task<Result<List<BookInstance>>> GetAllAsync(int pageNumber, int pageSize);
|
|
public Task<Result<BookInstance>> AddAsync(BookInstance bookInstance);
|
|
public Task<Result> DeleteAsync(BookInstanceId id);
|
|
}
|
|
|
|
public interface IShelfRepository
|
|
{
|
|
public Task<Result<Shelf>> GetAsync(ShelfId id);
|
|
public Task<Result<Shelf>> GetByBookInstanceBarcodeAsync(BookInstanceBarcode barcode);
|
|
public Task<Result<Shelf>> GetNextForCountAsync();
|
|
public Task<Result<Shelf>> UpdateAsync(Shelf shelf);
|
|
public Task<Result<List<Shelf>>> GetAllAsync(int pageNumber, int pageSize);
|
|
public Task<Result<Shelf>> AddAsync(Shelf shelf);
|
|
public Task<Result> DeleteAsync(ShelfId id);
|
|
}
|
|
|
|
public interface IMemberRepository
|
|
{
|
|
public Task<Result<Member>> GetAsync(MemberId id);
|
|
public Task<Result<Member>> UpdateAsync(Member member);
|
|
public Task<Result<List<Member>>> GetAllAsync(int pageNumber, int pageSize);
|
|
public Task<Result<Member>> AddAsync(Member member);
|
|
public Task<Result> DeleteAsync(MemberId id);
|
|
}
|
|
|
|
public interface ILendRecordRepository
|
|
{
|
|
public Task<Result<LendRecord>> GetAsync(LendRecordId id);
|
|
public Task<Result<List<LendRecord>>> GetAllByMemberIdAsync(MemberId memberId);
|
|
public Task<Result<LendRecord?>> GetActiveByBookInstanceIdAsync(BookInstanceId bookInstanceId);
|
|
public Task<bool> ExistsWithCodeAsync(LendCode code);
|
|
public Task<Result<LendRecord>> UpdateAsync(LendRecord lendRecord);
|
|
public Task<Result<List<LendRecord>>> GetAllAsync(int pageNumber, int pageSize);
|
|
public Task<Result<LendRecord>> AddAsync(LendRecord lendRecord);
|
|
public Task<Result> DeleteAsync(LendRecordId id);
|
|
} |