Перейти к основному содержимому

GetPanoramaShootingPointsListQuery

Назначение

Получение списка точек съёмки панорам по планировке без файлов. Используется для отображения точек на плане и выбора точки для загрузки изображений.

Цель

Вернуть клиенту перечень точек с идентификатором, названием, координатами, углом и типом точки.

Query: GetPanoramaShootingPointsListQuery (Входные данные)

ПолеТипОбязательностьОписание
ChessboardPropertyLayoutIdlongОбязательноеИдентификатор планировки
примечание

TenantId берётся из контекста запроса.

Result: GetPanoramaShootingPointsListQueryResult (Выходные данные)

ПолеТипОбязательностьОписание
EntriesIReadOnlyCollection<PanoramaPointListEntry>ОбязательноеСписок точек

PanoramaPointListEntry (ResultEntry)

ПолеТипОбязательностьОписание
PointIdGuidОбязательноеИдентификатор точки
NamestringОбязательноеНазвание
PointXdoubleОбязательноеКоордината X
PointYdoubleОбязательноеКоордината Y
AngledoubleОбязательноеУгол поворота
PointTypePanoramaShootingPointTypeОбязательноеТип точки

Валидация

  • Планировка с ChessboardPropertyLayoutId должна существовать. При необходимости проверить наличие; при отсутствии — вернуть пустой список или ошибку по правилам системы.

Бизнес-логика (Handler)

  1. Получить сущность ChessboardProjectPropertyLayoutEntity по ChessboardPropertyLayoutId из БД. Если не найдена — вернуть ошибку «Планировка не найдена» или пустой список (по правилам).
  2. Найти сущности PanoramaShootingPointEntity из таблицы PanoramaShootingPointEntity по PropertyLayoutId = ChessboardPropertyLayoutId (и TenantId из контекста).
  3. Сформировать объект результата: для каждой точки создать PanoramaPointListEntry (PointId, Name, PointX, PointY, Angle, PointType).
  4. Вернуть результат клиенту.

Диаграмма алгоритма

Связанные сущности

API

PanoramaPointsController.GetPanoramaShootingPointsList — GET layouts/{chessboardPropertyLayoutId}/points