Описание тестового задания находится в файле Test Task Description.pdf
Реализована общая архитектура, которая позволяет разделить работу по проекту в команде программистов. Реализованы несколько команд (exit, help, new_profile, вопросы/ответы, save), которые могут быть использованы в качестве шаблонов и подходов для реализации остальных команд.
Точки расширения:
- Команды: CommandTypeEnum / CommandHandlerDictionary / Questionary.Business.Commands
- Экраны: ScreenTypeEnum / ScreenFactoryDictionary / Questionary.UI.Screens
- Валидаторы: Questionary.Business.Validation
- Печатные формы: Questionary.Business.PrintForms
Ключевые моменты:
- Инфраструктура обработки действий пользователя реализована в классе Questionary.UI.Dispatcher
- Каждый экран имеет список доступных команд из перечня CommandTypeEnum
- Можно расширять функционал добавлением новых команд (в Questionary.Business.Commands) и новых экранов (в Questionary.UI.Screens)
- В app.config можно хранить параметры приложения по бизнес логике
- Все тексты на русском языке вынесены в класс Questionary.Resources.Text, что позволит в будущем легко добавить локализацию