Проект реализует фоновую службу для загрузки справочника терминалов из JSON файла и сохранения данных в PostgreSQL.
Решение было выполнено в рамках тестового задания для компании ООО «Страна Карт».
Вакансия:
https://hh.ru/vacancy/130964714
Необходимо реализовать фоновый сервис, который:
- периодически загружает справочник терминалов из JSON файла
- очищает существующие записи в базе данных
- выполняет импорт новых данных
- ведёт структурированное логирование всех операций
Импорт должен выполняться ежедневно в 02:00 по московскому времени.
Источник данных — JSON файл, расположенный в каталоге: /files/terminals.json
Файл содержит массив объектов терминалов.
- C# 13
- .NET 9
- ASP.NET Core Hosted Service
- Entity Framework Core 9
- PostgreSQL
- Microsoft.Extensions.DependencyInjection
- ILogger (структурированные логи)
Проект построен как ASP.NET Core Hosted Service, без Web API.
Основные компоненты:
Фоновая служба выполняет:
- планирование запуска импорта
- чтение JSON файла
- десериализацию данных
- импорт данных в БД
- логирование операций
- обработку ошибок
После выполнения импорта таблица offices содержит актуальный справочник терминалов, загруженный из JSON файла.
Сервис работает как автономная фоновая служба и выполняет импорт по расписанию.