Thanks for the opportunity to submit this code.
The solution has 2 "sections"
- A "quick answer" project that could be used to investigate data and explore. (< 10 min work).
- A more "production" quality code with unit tests.
Some notes:
- Output is to the console. As order is part of writing - the order clauses are part of report writer.
- Unit tests are limited but I hope tests show capabilities. I'm happy to discuss.
- The main report code could be in a separate project so it can be used by multiple consumers, for simplicity I added it to the console app, but a lib could be used by web service or other app.
- StructureMap is a great IoC library, but there are many others.
- I haven't added logging - but something like Serilog (and Seq + ElasticSearch) is great.