Skip to content

Latest commit

 

History

History
64 lines (40 loc) · 2.33 KB

File metadata and controls

64 lines (40 loc) · 2.33 KB

Terminal Dictionary Import Service

Проект реализует фоновую службу для загрузки справочника терминалов из 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.

Основные компоненты:

BackgroundService

Фоновая служба выполняет:

  • планирование запуска импорта
  • чтение JSON файла
  • десериализацию данных
  • импорт данных в БД
  • логирование операций
  • обработку ошибок

Результат работы

После выполнения импорта таблица offices содержит актуальный справочник терминалов, загруженный из JSON файла.

Сервис работает как автономная фоновая служба и выполняет импорт по расписанию.