Library App is a console-based application designed to manage library operations such as patron searches, loan management, and membership renewals. It is built using .NET 9.0 and follows a modular architecture with clear separation of concerns.
AccelerateDevGHCopilot.sln: Solution file for the project.src/Library.ApplicationCore/Entities/: Contains core domain entities such asPatron,Loan, andBookItem.Enums/: Defines enumerations used across the application.Interfaces/: Declares interfaces for services and repositories.Services/: Implements business logic for library operations.Library.ApplicationCore.csproj: Project file for the Application Core.
Library.Console/appSettings.json: Configuration file for the console application.CommonActions.cs: Defines common actions available in the console interface.ConsoleApp.cs: Main class for the console application.ConsoleState.cs: Enum representing the states of the console application.Program.cs: Entry point for the console application.Json/: Contains JSON files for data persistence.Library.Console.csproj: Project file for the Console application.
Library.Infrastructure/Data/: Implements data access logic using JSON files.Library.Infrastructure.csproj: Project file for the Infrastructure layer.
tests/UnitTests/ApplicationCore/: Contains unit tests for core application logic.LoanFactory.cs: Factory for creating test loan objects.PatronFactory.cs: Factory for creating test patron objects.UnitTests.csproj: Project file for unit tests.
- Core Classes
Patron: Represents a library patron.Loan: Represents a loaned book.BookItem: Represents a physical copy of a book.
- Enums
ConsoleState: Represents the states of the console application.CommonActions: Defines actions available in the console interface.
- Interfaces
IPatronRepository: Interface for patron data access.ILoanRepository: Interface for loan data access.ILoanService: Interface for loan-related business logic.IPatronService: Interface for patron-related business logic.
- Console Application
ConsoleApp: Main class for the console application.Program: Entry point for the application.
- Infrastructure
JsonPatronRepository: ImplementsIPatronRepositoryusing JSON files.JsonLoanRepository: ImplementsILoanRepositoryusing JSON files.JsonData: Manages JSON file operations.
- Clone the repository:
git clone <repository-url>