ReCapProject
ReCapProject is a car rental project that belongs to the C# programming language, adhering to SOLID principles and with an N-layer architecture structure; it is still under development.
The database was created based on the SQL Server Object Explorer section in Visual Studio 2019. At the bottom, you can see the field names and data types of the tables belonging to this database.
ReCapProject consists of Entities, DataAccess, and Business layers. Initially, the ConsoleUI layer was used to simulate operations on these layers. Later, with the addition of WebAPI to the project, Postman was used for testing operations. Let's examine these layers closely:
Entities Layer
This layer is created for database objects. In the Concrete folder, there are only 'classes 'created for tables, while in the DTOs folder section, there are 'classes' created to combine properties in different tables. You can review the details using the links at the bottom.
-
π Concrete
-
πBrands.cs
πCar.cs
πCarImage.cs
πColor.cs
πCustomer.cs
πRental.cs
-
πCarDetailDto.cs
πUserForLoginDto.cs
πUserForRegisterDto.cs
Data Access Layer
Database-related operations and database connections are located on this layer. You can review the details using the links at the bottom.
-
π¦NuGet Packages
-
π
Microsoft.EntityFrameworkCore.SqlServer(v3.1.11)
-
π Abstract
-
πIBrandDal.cs
πICarDal.cs
πICarImageDal.cs
πIColorDal.cs
πICustomerDal.cs
πIRentDal.cs
πIUserDal.cs
-
π Concrete
-
πEntitiy Framework
-
πCarsContext.cs
πEfBrandDal.cs
πEfCarDal.cs
πEfCarImageDal.cs
πEfColorDal.cs
πEfCustomerDal.cs
πEfCarDal.cs
πEfRentalDal.cs
πEfUserDal.cs
-
πThe InMemory Folder is not a connection to the contents database, but was created for testing purposes only for startup.
πIn Memory
-
πInMemory.cs
Business Layer
Business rules for Operations contained in the DataAcess layer are included in this layer. You can review the details using the links at
-
π¦NuGet Packages
-
π
Autofac(v6.1.0)
π
Autofac.Extras.DynamicProxy(v6.0.0)
π
FluentValidation(v9.5.1)
π
Microsoft.AspNetCore.Http(v2.2.2)
π
Microsoft.AspNetCore.Http.Abstractions(v2.2.0)
π
Microsoft.AspNetCore.Http.Features(v5.0.3)
π
Microsoft.Extensions.DependencyInjection(v5.0.1)
-
π Abstract
-
πIAuthService.cs
πIBrandService.cs
πICarService.cs
πICarImageService.cs
πIColorService.cs
πICustomerService.cs
πIRentalService.cs
πIUserService.cs
-
π Business Aspect
-
πAutofac
-
π Concrete
-
πAuthManager.cs
πBrandManager.cs
πCarManager.cs
πCarImageManager.cs
πColorManager.cs
πCustomerManager.cs
πRentalManager.cs
πUserManager.cs
-
πConstans
-
πMessages.cs
-
πDependency Resolvers
-
πAutofac
-
πValidation Rules
-
πFluent Validation
-
πBrandValidator.cs
πCarValidator.cs
πCarImageValidator.cs
πColorValidator.cs
πCustomerValidator.cs
πRentalValidator.cs
πUserValidator.cs
Core Layer
The Core layer is a layer where operations are generalized with generic structures, with potential that can be used for each project. CRUD operations are generalized with this layer only for objects that depend on the IEntity interface. You can review the details using the links at the bottom.
-
π¦NuGet Packages
-
π
Autofac(v6.1.0)
π
Autofac.Extras.DynamicProxy(v6.0.0)
π
FluentValidation(v9.5.1)
π
Microsoft.AspNetCore.Http.Features(v5.0.3)
π
Microsoft.EntityFrameworkCore.SqlServer(v3.1.11)
π
Microsoft.IdentityModel.Tokens(v6.8.0)
π
System.IdentityModel.Tokens.Jwt(v6.8.0)
-
π Aspects
-
πAutofac
-
πValidation
-
π Cross Cutting Concerns
-
πValidation
-
π Data Access
-
π Entities
-
π Concrete
-
πOperationClaim.cs
πUser.cs
πUserOperationClaim.cs
πIEntity
-
π Extensions
-
π Utilities
-
πBusiness
-
πBusinessRules.cs
-
πFileHelper
-
πFileHelper.cs
-
πIOC
-
πServiceTool.cs
-
πInterceptors
-
πResults
-
πDataResult.cs
πErrorDataResult.cs
πErrorResult.cs
πIDataResult.cs
πIResult.cs
πResult.cs
πSuccessDataResult.cs
πSuccessResult.cs
-
π Security
-
πHashing
-
πHashingHelper.cs
-
πJWT
-
πAccessToken.cs
πITokenHelper.cs
πJWTHelper.cs
πTokenOptions.cs
WebAPI
-
π¦NuGet Packages
-
π
Autofac.Extensions.DependencyInjection(v7.1.0)
π
Microsoft.AspNetCore.Authentication.JwtBearer(v3.1.12)
-
π Controllers
-
πAuthController.cs
πBrandsController.cs
πCarsController.cs
πCarImagesController.cs
πColorsController.cs
πCustomersController.cs
πRentalsController.cs
πUsersController.cs
-
π Program.cs
πStartup.cs
πWeatherForecast.cs
ConsoleUI
This layer is used to control written operations. Operations tested in this layerπhere you can reach. At the bottom, you can see the results of some operations as an example.
With the addition of the WebAPI layer to the project, Postman was used as a test tool, as the ConsoleUI layer was not sufficient. At the bottom, you can see the test results of some operations as an example.
-Cars
-Rental