- The solution is created via VS2019 using .NET 5. It is a small API with one main feature: md5 hash calculation.
- There are no controllers created explicitly. Instead, CommandQuery and CommandQuery.AspNetCore libraries are used in accordance with tech requirements.
- Client leverages Flurl package to connect out hash calculation endpoint.
- Contracts contains shared classes which are used both by Api and Client. It consists of only one class CalculateHashCommand with two required fields: login and password.
- CommandHandlers contains only one handler which concatenates login and password fields and call md5 hash function.
- DomainLogic consists of classes and interfaces for md5 hash evaluation. It receives string and apply hash function.
- Tests uses Moq for mocking. It covers Client, Handler and MD5 hash calculation in accordance with RFC1321 specification.
- IntegrationTests checks the main api and health check endpoints.
Note: use VS2019 to run the project
There are additional endpoints for health checks. It is possible to see the result of health checks on UI client (screenshot below).
Swagger is added to provide ability to check the main endpoint (screenshot below)