Skip to content

Simple application, that processes XML and CSV files, stores content to database, queries data back, handles and logs exceptions along the way.

License

Notifications You must be signed in to change notification settings

zuyuz/TransactionData

Repository files navigation

TransactionData application

.NET Core

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.

Technologies

Overview

Application Core

This project contains domain of application, which includes: commands, constants, dtos, enums, events, models and queries.

This project contains abstractions for TransactionData.Service.

Application Infrastructure

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.

Outer Layer

This project is based on ASP.NET Core 3.1. Represents outer layer of application, WebAPI. Contains user friendly interface, powered by Swagger.

Tests

This project contains application unit tests.

License

The content of this project itself is licensed under the Gnu general public license

About

Simple application, that processes XML and CSV files, stores content to database, queries data back, handles and logs exceptions along the way.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages