Получение значения бинарного свойства
Пример показывает, как получить значение бинарного свойства элемента средствами клиентской
библиотеки Ascon.Polynom.Web.Api.Client. Проект — Samples.WebApi.GetBinaryPropertyValue.
Требования
- .NET 8.
- Запущенный web-сервер ПОЛИНОМ:MDM с доступным хранилищем.
- Пакет
Ascon.Polynom.Web.Api.Clientиз локального фида (подключается автоматически).
Алгоритм
- Авторизоваться в web-API.
- Задать элемент-владелец свойств.
- Задать бинарное свойство.
- Получить значение бинарного свойства.
- Выйти из сессии.
Авторизация
Авторизация выполняется хелпером 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.