You work within a team and are assigned a ticket created by the product owner as part of your sprint work. The ticket says:
The ticket service functionally works well and the function and logic of it must not change. However it requires refactoring to improve readability. When refactoring, focus on applying clean code principles. The final result should be something ready to merge into the next release of the product and meets the definition of done. You are free to define the definition of done for yourself. Keep in mind principles such as SOLID, KISS, DRY and YAGNI.
Due to dependencies in other areas of the larger product, there are a few limitations that must be followed during the refactoring:
- The contents of Program.cs cannot change at all including using statements.
- The EmailService project cannot be changed
- The method signatures in the repositories cannot change
- The TicketRepository must remain static
Please submit your refactored code to us via a method of your choice (repository link, cloud share, zip file, etc.) to allow us to review it. Note that while you can clone this repository, you cannot create a branch or commit any code to the repository. It is read only.
Try to limit time spent on this exercise to a maximum of 3 hours. If there is anything you don't have time to complete, write it down and include it with your submission.
Good Luck!