Split the individual repository interfaces to their own classes.

This commit is contained in:
2026-04-10 19:32:59 +05:00
parent 715893fb1f
commit 60675b4581
5 changed files with 56 additions and 44 deletions
@@ -0,0 +1,15 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
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);
}
-44
View File
@@ -10,47 +10,3 @@ public interface IBookRepository
public Task<Result<Book>> AddAsync(Book book); public Task<Result<Book>> AddAsync(Book book);
public Task<Result> DeleteAsync(BookId id); 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);
}
@@ -0,0 +1,15 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
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);
}
@@ -0,0 +1,12 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
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);
}
@@ -0,0 +1,14 @@
using LibraryApp.Domain.Entities;
namespace LibraryApp.Domain.Repositories;
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);
}