This is the implementation of PaymentGateway
This solution was devided into multiple projects
*Cko.PaymentGateway.csproj
- this is the main api project
*Cko.PaymentGateway.BankSimulator
- this is the project holding the acquiring bank code
*Cko.PaymentGateway.Business.csproj
- project used for defining business classes and utilities
*Cko.PaymentGateway.Business.Tests.csproj
- project used for testing Business.csproj project
*Cko.PaymentGateway.Data.Dtos.csproj
- project used to defines all dto contracts
*Cko.PaymentGateway.Data.Models.csproj
- project used to defines all data model contracts
*Cko.PaymentGateway.Data.Validators.csproj
- project used to defines all data models and dtos validators
*Cko.PaymentGateway.Data.Validators.Tests.csproj
- project used for testing Validators.csproj project
Cko.PaymentGateway.Tests.csproj
-
project used for unit testing (controllers as example)
-
Cko.PaymentGateway.Integration.Tests
-
project used for integration testing (controllers as example)
Asp.net core web api
.netcore 3.1
Xunit
https://localhost:5001/swagger/index.html
#Code coverage computed by Fine Code Coverage
-
#Improvements
-
Usage of RetryPolicy (Polly)
-
Implement CacheDecorator pattern for services that retrieve payments details
-
Handle PaymentData Security (hashed data...)
-
Handle Permissions and security (oAuth, Jwt)
#Cloud Technologies that could be used
-
Disaster Recovery
-
Data Backup
-
Horizontal Scaling
-
Load Balancing
-
Caching.

