This solution demonstrates how to create API, that accepts XML and CSV data files, containing simple "transaction" model, records and query to the data store, while logging all possible exceptions on the way.
- .NET Core 3.1
- ASP.NET Core 3.1
- Entity Framework Core 3.1
- MediatR
- AutoMapper
- CSharpFunctionalExtensions
- CsvHelper
- Serilog
- Moq
- xUnit
This project contains domain of application, which includes: commands, constants, dtos, enums, events, models and queries.
This project contains abstractions for TransactionData.Service.
This project contains all entityConfigurations, repositories and DbContext.
This project contains all entities, that are used to generate tables, using EF Core code-first approach.
This project contains data contractor interfaces, abstractions, that are used with Dependency injection to provide loose coupling between application and data provider.
This project contains Migrations for MSSQL database.
This project contains Migrations for Sqlite database.
This project contains command, query and event handlers for managing application requests.
This project represents Inversion of control, powered by ASP.NET Core Dependency injection mechanism. Introduces loose coupling between projects.
This project is based on ASP.NET Core 3.1. Represents outer layer of application, WebAPI. Contains user friendly interface, powered by Swagger.
This project contains application unit tests.
The content of this project itself is licensed under the Gnu general public license