From 60675b45815650901270f94679702ed291da1332 Mon Sep 17 00:00:00 2001 From: Enxyphered Date: Fri, 10 Apr 2026 19:32:59 +0500 Subject: [PATCH] Split the individual repository interfaces to their own classes. --- .../Repositories/IBookInstanceRepository.cs | 15 +++++++ LibraryApp.Domain/Repositories/IBooks.cs | 44 ------------------- .../Repositories/ILendRecordRepository.cs | 15 +++++++ .../Repositories/IMemberRepository.cs | 12 +++++ .../Repositories/IShelfRepository.cs | 14 ++++++ 5 files changed, 56 insertions(+), 44 deletions(-) create mode 100644 LibraryApp.Domain/Repositories/IBookInstanceRepository.cs create mode 100644 LibraryApp.Domain/Repositories/ILendRecordRepository.cs create mode 100644 LibraryApp.Domain/Repositories/IMemberRepository.cs create mode 100644 LibraryApp.Domain/Repositories/IShelfRepository.cs diff --git a/LibraryApp.Domain/Repositories/IBookInstanceRepository.cs b/LibraryApp.Domain/Repositories/IBookInstanceRepository.cs new file mode 100644 index 0000000..14c9aeb --- /dev/null +++ b/LibraryApp.Domain/Repositories/IBookInstanceRepository.cs @@ -0,0 +1,15 @@ +using LibraryApp.Domain.Entities; + +namespace LibraryApp.Domain.Repositories; + +public interface IBookInstanceRepository +{ + public Task> GetByIdAsync(BookInstanceId id); + public Task> GetByBarcodeAsync(BookInstanceBarcode barcode); + public Task>> GetAllByShelfIdAsync(ShelfId shelfId); + public Task>> GetAllByStatusAsync(BookInstanceStatus status); + public Task> UpdateAsync(BookInstance bookInstance); + public Task>> GetAllAsync(int pageNumber, int pageSize); + public Task> AddAsync(BookInstance bookInstance); + public Task DeleteAsync(BookInstanceId id); +} diff --git a/LibraryApp.Domain/Repositories/IBooks.cs b/LibraryApp.Domain/Repositories/IBooks.cs index f1203e6..fbeff22 100644 --- a/LibraryApp.Domain/Repositories/IBooks.cs +++ b/LibraryApp.Domain/Repositories/IBooks.cs @@ -9,48 +9,4 @@ public interface IBookRepository public Task>> GetAllAsync(int pageNumber, int pageSize); public Task> AddAsync(Book book); public Task DeleteAsync(BookId id); -} - -public interface IBookInstanceRepository -{ - public Task> GetByIdAsync(BookInstanceId id); - public Task> GetByBarcodeAsync(BookInstanceBarcode barcode); - public Task>> GetAllByShelfIdAsync(ShelfId shelfId); - public Task>> GetAllByStatusAsync(BookInstanceStatus status); - public Task> UpdateAsync(BookInstance bookInstance); - public Task>> GetAllAsync(int pageNumber, int pageSize); - public Task> AddAsync(BookInstance bookInstance); - public Task DeleteAsync(BookInstanceId id); -} - -public interface IShelfRepository -{ - public Task> GetAsync(ShelfId id); - public Task> GetByBookInstanceBarcodeAsync(BookInstanceBarcode barcode); - public Task> GetNextForCountAsync(); - public Task> UpdateAsync(Shelf shelf); - public Task>> GetAllAsync(int pageNumber, int pageSize); - public Task> AddAsync(Shelf shelf); - public Task DeleteAsync(ShelfId id); -} - -public interface IMemberRepository -{ - public Task> GetAsync(MemberId id); - public Task> UpdateAsync(Member member); - public Task>> GetAllAsync(int pageNumber, int pageSize); - public Task> AddAsync(Member member); - public Task DeleteAsync(MemberId id); -} - -public interface ILendRecordRepository -{ - public Task> GetAsync(LendRecordId id); - public Task>> GetAllByMemberIdAsync(MemberId memberId); - public Task> GetActiveByBookInstanceIdAsync(BookInstanceId bookInstanceId); - public Task ExistsWithCodeAsync(LendCode code); - public Task> UpdateAsync(LendRecord lendRecord); - public Task>> GetAllAsync(int pageNumber, int pageSize); - public Task> AddAsync(LendRecord lendRecord); - public Task DeleteAsync(LendRecordId id); } \ No newline at end of file diff --git a/LibraryApp.Domain/Repositories/ILendRecordRepository.cs b/LibraryApp.Domain/Repositories/ILendRecordRepository.cs new file mode 100644 index 0000000..c0b89bb --- /dev/null +++ b/LibraryApp.Domain/Repositories/ILendRecordRepository.cs @@ -0,0 +1,15 @@ +using LibraryApp.Domain.Entities; + +namespace LibraryApp.Domain.Repositories; + +public interface ILendRecordRepository +{ + public Task> GetAsync(LendRecordId id); + public Task>> GetAllByMemberIdAsync(MemberId memberId); + public Task> GetActiveByBookInstanceIdAsync(BookInstanceId bookInstanceId); + public Task ExistsWithCodeAsync(LendCode code); + public Task> UpdateAsync(LendRecord lendRecord); + public Task>> GetAllAsync(int pageNumber, int pageSize); + public Task> AddAsync(LendRecord lendRecord); + public Task DeleteAsync(LendRecordId id); +} \ No newline at end of file diff --git a/LibraryApp.Domain/Repositories/IMemberRepository.cs b/LibraryApp.Domain/Repositories/IMemberRepository.cs new file mode 100644 index 0000000..d5baf24 --- /dev/null +++ b/LibraryApp.Domain/Repositories/IMemberRepository.cs @@ -0,0 +1,12 @@ +using LibraryApp.Domain.Entities; + +namespace LibraryApp.Domain.Repositories; + +public interface IMemberRepository +{ + public Task> GetAsync(MemberId id); + public Task> UpdateAsync(Member member); + public Task>> GetAllAsync(int pageNumber, int pageSize); + public Task> AddAsync(Member member); + public Task DeleteAsync(MemberId id); +} diff --git a/LibraryApp.Domain/Repositories/IShelfRepository.cs b/LibraryApp.Domain/Repositories/IShelfRepository.cs new file mode 100644 index 0000000..bddb0e5 --- /dev/null +++ b/LibraryApp.Domain/Repositories/IShelfRepository.cs @@ -0,0 +1,14 @@ +using LibraryApp.Domain.Entities; + +namespace LibraryApp.Domain.Repositories; + +public interface IShelfRepository +{ + public Task> GetAsync(ShelfId id); + public Task> GetByBookInstanceBarcodeAsync(BookInstanceBarcode barcode); + public Task> GetNextForCountAsync(); + public Task> UpdateAsync(Shelf shelf); + public Task>> GetAllAsync(int pageNumber, int pageSize); + public Task> AddAsync(Shelf shelf); + public Task DeleteAsync(ShelfId id); +}