/RoofWalletServiceAssignmentForHiringProcess

A virtual wallet app for assignment process on hiring.

Primary LanguageC#

Why did I use what?

  • I used .NET Core 5.0.
  • I used Onion architecture. Many projects are written with microservice architecture in these days. It is also suitable for this one.
  • I used MediatR. I think it is a nice and useful framework for the pipeline, which is widely used in REST APIs developed with C# .NET Core.
  • I used EntityFrameworkCore. I prefer it because it is the most common ORM framework for RDBMS databases. When I thought about domain layer, code first method was a better option. It can be in any database. (RDBMS or NOSQL)
  • I used XUnit. I used XUnit for unit tests.
  • I used Swagger. I used REST Api for documentation. Note: It comes by default when creating a new Web Api in .NET Core 5.0.
  • I kept the handlers separately as Commants and Queries. The reason for this is what I have experienced this until now, and I think it is more reliable and manageable to keep the operations to write directly to the database in CRUD operations. See

Unit Tests

Packages

dotnet add package Microsoft.EntityFrameworkCore --version 5.0.0

dotnet add package Microsoft.EntityFrameworkCore.Relational --version 5.0.0

dotnet add package Microsoft.EntityFrameworkCore.Design --version 5.0.0

dotnet add package Microsoft.EntityFrameworkCore.InMemory --version 5.0.0

dotnet add package Swashbuckle.AspNetCore --version 5.6.3

dotnet add package FluentValidation --version 10.1.0

dotnet add package MediatR --version 9.0.0

dotnet add package xunit --version 2.4.1

Links and References

XUnit – Part 5: Share Test Context With IClassFixture and ICollectionFixture

https://xunit.net/docs/shared-context#collection-fixture

ASP.NET Core 'de birim test denetleyicisi mantığı