| File | Date | Author | Commit |
|---|---|---|---|
| .idea | 2024-10-27 |
|
[531476] feat: Добавлены входные данные |
| gmafffff.FilterOrder | 2024-11-18 |
|
[62c1cc] fix: Исправлены незначительные ошибки конфигурации |
| gmafffff.FilterOrder.Tests | 2024-10-29 |
|
[0b5b67] test: Добавляет тесты |
| .hgignore | 2024-10-26 |
|
[7d2eb6] chore: Создан проект |
| filterOrder.sln | 2024-10-29 |
|
[0b5b67] test: Добавляет тесты |
| readme.md | 2024-10-30 |
|
[4d81af] docs: Исправление отображения вложенных списков |
Тестовое задание для собеседования
На решение задачи (включая поиск библиотек и чтение документации) мне потребовалось 😓:
| задача | время, час |
|---|---|
| Вникнуть в ТЗ | 0.25 |
| Настроить хост | 1.00 |
| Настроить конфигурацию | 0.50 |
| Проверка данных для фильтрации | 9.40 |
| Фильтрация заказов | 6 |
| Логирование в файл | 3 |
| Тесты | 0.5 |
Всего: 20.65 часов.
Приложение не требует дополнительных телодвижений и может быть собрано и запущено в IDE.
Образец данных содержится в файле .\sample\orders.csv. Путь к нему указан в appsettings.json
Выходные данные будут созданы в файле .\sample\select.csv. Путь к нему переопределён параметрами командной строки, заданными в .\Properties\launchSettings.json
Лог будет создан в файле .\log.log. Путь к нему установлен переменными окружения, заданными в .\Properties\launchSettings.json
Результат сборки проекта сохраняется в каталоге %temp%\gmafffff\
Необходимо разработать консольное приложение (по желанию можно WinForms либо WebApi) для службы доставки, которое фильтрует заказы в зависимости от количества обращений в конкретном районе города и времени обращения с и по.
Входные данные для каждой строки содержат следующую информацию:
Также необходимо сделать логирование основных операций, а также валидацию входных данных.
В результирующий файл либо БД необходимо вывести результат фильтрации заказов для доставки в конкретный район города в ближайшие полчаса после времени первого заказа.
Данные для фильтрации (можно передавать через параметры консольного приложения _cityDistrict, _firstDeliveryDateTime):
Выходные файлы:
По возможности, кроме передачи параметров через командную строку либо форму, можно реализовать частичную либо полную передачу параметров через файлы конфигурации или переменные среды
Программа не должна ломаться от некорректных входных данных (реализовать в валидации), ошибок ввода-вывода и прочим причинам, которые можно предусмотреть (реализовать обработку возможных ошибок).
Решение должно быть предоставлено в виде исходных кодов в архиве, при необходимости с дампом базы данных, в виде архива или ссылки на репозиторий с решением.
Код должен быть оптимальным, читаемым для разработчика и удобным для пользователя, при разработке желательно покрытие несколькими тестами и использование общераспространенных практик (паттерны проектирования, KISS…)
Результат тестового задания должен содержать текстовый файл readme.txt с инструкцией по настройке и конфигурированию приложения (если необходимо).
Публичная собственность