Table of Contents

Получение значения бинарного свойства

Пример показывает, как получить значение бинарного свойства элемента средствами клиентской библиотеки Ascon.Polynom.Web.Api.Client. Проект — Samples.WebApi.GetBinaryPropertyValue.

Требования

  • .NET 8.
  • Запущенный web-сервер ПОЛИНОМ:MDM с доступным хранилищем.
  • Пакет Ascon.Polynom.Web.Api.Client из локального фида (подключается автоматически).

Алгоритм

  1. Авторизоваться в web-API.
  2. Задать элемент-владелец свойств.
  3. Задать бинарное свойство.
  4. Получить значение бинарного свойства.
  5. Выйти из сессии.

Авторизация

Авторизация выполняется хелпером PolynomClientSession поверх AuthorizationService. Подробно — в разделе Авторизация в C# через клиентскую библиотеку.

Реализация

Значение бинарного свойства возвращает метод GetBinaryPropertyValue сервиса PropertyOwnerApiClient с моделью GetPropertyRequest.

using Ascon.Polynom.Web.Api.Client.Enums;

using Samples.WebApi.Common.Services;

using var session = await PolynomClientSession.CreateAsync(cancellationToken);

// Идентификатор элемента-владельца свойств и определения бинарного свойства.
var propertyOwnerId = 5;
var propertyDefinitionId = 42;

var temporaryFileName = await session.Factory.CreatePropertyOwnerApiClient()
    .GetBinaryPropertyValue(new GetPropertyRequest
    {
        Owner = new IdentifiableObject
        {
            ObjectId = propertyOwnerId,
            TypeId = IdentifiableObjectType.Element
        },
        Definition = new IdentifiableObject
        {
            ObjectId = propertyDefinitionId,
            TypeId = IdentifiableObjectType.BinaryPropertyDefinition
        }
    }, cancellationToken);

// Имя указывает на файл со значением во временном хранилище web-сервера.
if (string.IsNullOrEmpty(temporaryFileName))
    throw new InvalidOperationException("Значение бинарного свойства не задано.");

await session.SignOutAsync(cancellationToken);

Используемые методы библиотеки

Сервис Метод Назначение
PropertyOwnerApiClient GetBinaryPropertyValue(GetPropertyRequest, CancellationToken) Имя временного файла со значением бинарного свойства

Результат

temporaryFileName — имя файла со значением бинарного свойства в каталоге %ProgramData%\ASCON\Polynom\WebServer\Data\Files\.

Возможные ошибки

  • Владелец или свойство не найдены — проверьте идентификаторы.
  • Значение не задано — метод вернёт пустой результат.
  • Сессия истекла — библиотека обновит токен и повторит запрос; при неудаче требуется повторный вход.

Ссылки

Пример-приложение в составе SDK: SDK/Web/Samples/Server/Samples.WebApi.GetBinaryPropertyValue.