/Rent-A-Car-App-Backend-Project

.Net Core 5.0 🔥 backend project of an open source car rental application 🚀

Primary LanguageC#

enter image description here

Project Tree Structure

📦 Recap .Net Core 5.0 Web API Tree View
├─ Business
│  â”œâ”€ Abstract
│  â”‚  â”œâ”€ IAuthService.cs
│  â”‚  â”œâ”€ IBrandService.cs
│  â”‚  â”œâ”€ ICarImageService.cs
│  â”‚  â”œâ”€ ICarService.cs
│  â”‚  â”œâ”€ IColorService.cs
│  â”‚  â”œâ”€ ICustomerService.cs
│  â”‚  â”œâ”€ IRentalService.cs
│  â”‚  â””─ IUserService.cs
│  â”œâ”€ Business.csproj
│  â”œâ”€ BusinessAspects
│  â”‚  â””─ Autofac
│  â”‚     â””─ SecuredOperation.cs
│  â”œâ”€ Concrete
│  â”‚  â”œâ”€ AuthManager.cs
│  â”‚  â”œâ”€ BrandManager.cs
│  â”‚  â”œâ”€ CarImageManager.cs
│  â”‚  â”œâ”€ CarManager.cs
│  â”‚  â”œâ”€ ColorManager.cs
│  â”‚  â”œâ”€ CustomerManager.cs
│  â”‚  â”œâ”€ RentalManager.cs
│  â”‚  â””─ UserManager.cs
│  â”œâ”€ Constants
│  â”‚  â””─ Messages.cs
│  â”œâ”€ DependencyResolvers
│  â”‚  â””─ Autofac
│  â”‚     â””─ AutofacBusinessModule.cs
│  â””─ ValidationRules
│     â””─ FluentValidation
│        â”œâ”€ BrandValidator.cs
│        â”œâ”€ CarImageValidator.cs
│        â”œâ”€ CarValidator.cs
│        â”œâ”€ ColorValidator.cs
│        â”œâ”€ CustomerValidator.cs
│        â”œâ”€ RentalValidator.cs
│        â””─ UserValidator.cs
├─ Core
│  â”œâ”€ Aspects
│  â”‚  â””─ Autofac
│  â”‚     â”œâ”€ Caching
│  â”‚     â”‚  â”œâ”€ CacheAspect.cs
│  â”‚     â”‚  â””─ CacheRemoveAspect.cs
│  â”‚     â”œâ”€ Performance
│  â”‚     â”‚  â””─ PerformanceAspect.cs
│  â”‚     â””─ Validation
│  â”‚        â””─ ValidationAspect.cs
│  â”œâ”€ Constants
│  â”‚  â””─ Messages.cs
│  â”œâ”€ Core.csproj
│  â”œâ”€ CrossCuttingConcerns
│  â”‚  â”œâ”€ Caching
│  â”‚  â”‚  â”œâ”€ ICacheManager.cs
│  â”‚  â”‚  â””─ Microsoft
│  â”‚  â”‚     â””─ MemoryCacheManager.cs
│  â”‚  â””─ Validation
│  â”‚     â””─ ValidationTool.cs
│  â”œâ”€ DataAccess
│  â”‚  â”œâ”€ EntityFramework
│  â”‚  â”‚  â””─ EfEntityRepositoryBase.cs
│  â”‚  â””─ IEntityRepository.cs
│  â”œâ”€ DependencyResolvers
│  â”‚  â””─ CoreModule.cs
│  â”œâ”€ Entities
│  â”‚  â”œâ”€ Concrete
│  â”‚  â”‚  â”œâ”€ OperationClaim.cs
│  â”‚  â”‚  â”œâ”€ User.cs
│  â”‚  â”‚  â””─ UserOperationClaim.cs
│  â”‚  â”œâ”€ IDto.cs
│  â”‚  â””─ IEntity.cs
│  â”œâ”€ Extensions
│  â”‚  â”œâ”€ ClaimExtensions.cs
│  â”‚  â”œâ”€ ClaimsPrincipalExtensions.cs
│  â”‚  â””─ ServiceCollectionExtensions.cs
│  â””─ Utilities
│     â”œâ”€ Business
│     â”‚  â””─ BusinessRules.cs
│     â”œâ”€ FileHelper
│     â”‚  â”œâ”€ Abstract
│     â”‚  â”‚  â””─ IFileHelper.cs
│     â”‚  â””─ Concrete
│     â”‚     â””─ FileHelper.cs
│     â”œâ”€ Interceptors
│     â”‚  â”œâ”€ AspectInterceptorSelector.cs
│     â”‚  â”œâ”€ MethodInterception.cs
│     â”‚  â””─ MethodInterceptionBaseAttribute.cs
│     â”œâ”€ IoC
│     â”‚  â”œâ”€ ICoreModule.cs
│     â”‚  â””─ ServiceTool.cs
│     â”œâ”€ Result
│     â”‚  â”œâ”€ DataResult.cs
│     â”‚  â”œâ”€ ErrorDataResult.cs
│     â”‚  â”œâ”€ ErrorResult.cs
│     â”‚  â”œâ”€ IDataResult.cs
│     â”‚  â”œâ”€ IResult.cs
│     â”‚  â”œâ”€ Result.cs
│     â”‚  â”œâ”€ SuccessDataResult.cs
│     â”‚  â””─ SuccessResult.cs
│     â””─ Security
│        â”œâ”€ Encryption
│        â”‚  â”œâ”€ SecurityKeyHelper.cs
│        â”‚  â””─ SigningCredentialsHelper.cs
│        â”œâ”€ Hashing
│        â”‚  â””─ HashingHelper.cs
│        â””─ JWT
│           â”œâ”€ Abstract
│           â”‚  â””─ ITokenHelper.cs
│           â”œâ”€ AccessToken.cs
│           â”œâ”€ JwtHelper.cs
│           â””─ TokenOptions.cs
├─ DataAccess
│  â”œâ”€ Abstract
│  â”‚  â”œâ”€ IBrandDal.cs
│  â”‚  â”œâ”€ ICarDal.cs
│  â”‚  â”œâ”€ ICarImageDal.cs
│  â”‚  â”œâ”€ IColorDal.cs
│  â”‚  â”œâ”€ ICustomerDal.cs
│  â”‚  â”œâ”€ IRentalDal.cs
│  â”‚  â””─ IUserDal.cs
│  â”œâ”€ Concrete
│  â”‚  â”œâ”€ EntityFramework
│  â”‚  â”‚  â”œâ”€ EfBrandDal.cs
│  â”‚  â”‚  â”œâ”€ EfCarDal.cs
│  â”‚  â”‚  â”œâ”€ EfCarImageDal.cs
│  â”‚  â”‚  â”œâ”€ EfColorDal.cs
│  â”‚  â”‚  â”œâ”€ EfCustomerDal.cs
│  â”‚  â”‚  â”œâ”€ EfRentalDal.cs
│  â”‚  â”‚  â”œâ”€ EfUserDal.cs
│  â”‚  â”‚  â””─ ReCapContext.cs
│  â”‚  â””─ InMemory
│  â”‚     â””─ InMemoryCarDal.cs
│  â”œâ”€ DataAccess.csproj
│  â””─ Migrations
│     â”œâ”€ 20210214114541_Initialize.Designer.cs
│     â”œâ”€ 20210214114541_Initialize.cs
│     â”œâ”€ 20210214170404_newTables.Designer.cs
│     â”œâ”€ 20210214170404_newTables.cs
│     â””─ ReCapContextModelSnapshot.cs
├─ Entities
│  â”œâ”€ Concrete
│  â”‚  â”œâ”€ Brand.cs
│  â”‚  â”œâ”€ Car.cs
│  â”‚  â”œâ”€ CarImage.cs
│  â”‚  â”œâ”€ Color.cs
│  â”‚  â”œâ”€ Customer.cs
│  â”‚  â””─ Rental.cs
│  â”œâ”€ DTOs
│  â”‚  â”œâ”€ BrandDTOs
│  â”‚  â”‚  â””─ AddBrandDto.cs
│  â”‚  â”œâ”€ CarDetailsDTO.cs
│  â”‚  â”œâ”€ CarImageDTOs
│  â”‚  â”‚  â”œâ”€ AddCarImageDto.cs
│  â”‚  â”‚  â””─ UpdateCarImageDto.cs
│  â”‚  â”œâ”€ RentalDTOs
│  â”‚  â”‚  â””─ GetRentalDetailDTO.cs
│  â”‚  â””─ UserDTOs
│  â”‚     â”œâ”€ UserForLoginDto.cs
│  â”‚     â””─ UserForRegisterDto.cs
│  â””─ Entities.csproj
├─ README.md
├─ ReCapProject.sln
├─ WebAPI
│  â”œâ”€ Controllers
│  â”‚  â”œâ”€ AuthController.cs
│  â”‚  â”œâ”€ BrandsController.cs
│  â”‚  â”œâ”€ CarImagesController.cs
│  â”‚  â”œâ”€ CarsController.cs
│  â”‚  â”œâ”€ ColorsController.cs
│  â”‚  â”œâ”€ CustomersController.cs
│  â”‚  â”œâ”€ RentalsController.cs
│  â”‚  â””─ UsersController.cs
│  â”œâ”€ Program.cs
│  â”œâ”€ Properties
│  â”‚  â””─ launchSettings.json
│  â”œâ”€ Startup.cs
│  â”œâ”€ ViewModels
│  â”‚  â””─ MapperProfile.cs
│  â”œâ”€ WebAPI.csproj
│  â”œâ”€ appsettings.Development.json
│  â”œâ”€ appsettings.json
│  â””─ wwwroot
│     â””─ images
│        â”œâ”€ 00dfccbf-5f64-4bfd-bafe-971304a2eacc.jpg
│        â”œâ”€ 0ec4b368-da70-448e-933d-9247febe38fc.jpg
│        â”œâ”€ 0ffe7fa2-2e02-4a51-a912-f0ebc558ced1.jpg
│        â”œâ”€ 148d1417-ae11-42e9-990e-6a324618dd70.jpg
│        â”œâ”€ 1fd8a04f-e995-42aa-bb10-b39b27ef825f.jpg
│        â”œâ”€ 2efb130b-7f2d-4d6c-bb00-5c6bdcaee140.jpg
│        â”œâ”€ 3dd89eac-5b38-4bfb-897e-a877bf6dcb7d.jpg
│        â”œâ”€ 5c1a5feb-1320-49cc-8f4e-c36e0d47d5dd.jpg
│        â”œâ”€ 615b1d4d-d27c-4bc2-b637-ae9ed6f435c4.jpg
│        â”œâ”€ 6abba55c-d734-4910-9277-d2de8cde2026.jpg
│        â”œâ”€ 841bc992-220b-418d-80ab-f96a54cac31a.jpg
│        â”œâ”€ 91b4f84d-5e61-4355-9387-140037be67bc.jpg
│        â”œâ”€ a065c281-7f7b-46f5-911b-bd93d855136d.jpg
│        â”œâ”€ bd9896c5-ac1d-484d-96a8-b959e990b9cb.jpg
│        â”œâ”€ e05a9019-4605-4b34-bfe7-808b00a0b230.jpg
│        â”œâ”€ e0c486d5-7634-427c-8ff2-65564e65f8af.jpg
│        â”œâ”€ e594452f-e7b2-483e-903e-8048405f6f67.jpg
│        â”œâ”€ f15da437-f414-49a4-94bd-422a0503a80f.jpg
│        â”œâ”€ f6cc48be-9369-4234-86c7-1b8d34e7a7d7.jpg
│        â””─ placeholder.png
└─ rent-a-car-project-banner.png