Код ниже использует вспомогательный класс — ZidiumHelper
Чтобы получить исходные коды примеров, скачайте API
Для создания или получения компонента используйте следующий код:
/// <summary>
/// Статический хэлпер для доступа к функциям Zidium из любого кода
/// </summary>
public static class ZidiumHelper
{
private static IClient _client;
private static IComponentControl _componentControl;
/// <summary>
/// Возвращает клиента Zidium (обертка над веб-сервисом).
/// </summary>
public static IClient GetClient()
{
if (_client == null)
{
lock (typeof(ZidiumHelper))
{
if (_client == null)
{
// Получим конфиг и укажем данные аккаунта
var zidiumConfig = ConfigHelper.LoadFromXmlOrGetDefault();
zidiumConfig.Access.Url = "АдресВашегоСервисаApi";
zidiumConfig.Access.SecretKey = "caf508d2-XXXX-XXXX-XXXX-6a2ef73a2b49"; // Посмотрите в личном кабинете
// Получим клиент Zidium
var _client = new Client(zidiumConfig);
}
}
}
return _client;
}
/// <summary>
/// Возвращает компонент для текущего приложения
/// </summary>
public static IComponentControl GetComponentControl()
{
if (_componentControl == null)
{
// Получим клиент Zidium
var zidiumClient = GetClient();
// Создадим или получим тип компонента
var componentType = zidiumClient.GetOrCreateComponentTypeControl(
new GetOrCreateComponentTypeData("Application.Console")
{
DisplayName = "Консольные приложения"
});
// Чтобы использовать один из предустановленных типов,
// Возьмите его системное имя из статического класса SystemComponentType
componentType = zidiumClient.GetOrCreateComponentTypeControl(SystemComponentType.DataBase.SystemName);
// Получим корень дерева компонентов
var root = zidiumClient.GetRootComponentControl();
// Создадим в корне компонент, если его ещё нет
var _componentControl = root.GetOrCreateChildComponentControl(
new GetOrCreateComponentData("MainService", componentType)
{
DisplayName = "Сервис сбора данных",
Version = "1.0.0.3"
});
}
return _componentControl;
}
}
Для доступа к компоненту просто вызовите ZidiumHelper.GetComponentControl(). Компонент понадобится вам для отправки любых данных — ошибок, событий, проверок, метрик, лога.
Сначала нужно получить Id типа компонента. Вы можете создать свой тип компонента через Api и узнать его Id, или же создать тип компонента в личном кабинете и посмотреть там его Id. Можно также использовать один из предустановленных (системных) типов, их Id также можно посмотреть в личном кабинете.
Для создания или получения типа компонента выполните POST-запрос:
АдресВашегоСервисаApi/GetOrCreateComponentType
{
"Token": {
"SecretKey": "caf508d2-XXXX-XXXX-XXXX-6a2ef73a2b49"
},
"Data": {
"SystemName": "Application.Console",
"DisplayName": "Консольные приложения"
}
}
Здесь:
{
"Data": {
"Id": "fbc54d8d-76be-4a15-9b97-0ecc051d813a",
"SystemName": "Application.Console",
"DisplayName": "Консольные приложения",
"IsSystem": false
},
"Code": 10
}
Нужно убедиться, что Code равно 10, что означает успешное выполнение. Из ответа нужно взять и сохранить Id, это Id типа компонента, который потребуется на следующем шаге для создания или получения компонента.
Для создания компонента нужно также определить его положение в иерархии (дереве компонентов). У каждого компонента есть родитель — другой компонент, в котором он расположен. Самый простой вариант — использовать в качестве родителя компонент "корень дерева" (root).
Для получения корня дерева выполните POST-запрос:
АдресВашегоСервисаApi/GetRootComponent
{
"Token": {
"SecretKey": "caf508d2-XXXX-XXXX-XXXX-6a2ef73a2b49"
}
}
Здесь:
{
"Data": {
"Id": "421fc118-cf04-41c6-8220-6cd2caaeb60c",
...
},
"Code": 10
}
Нужно убедиться, что Code равно 10, что означает успешное выполнение. Из ответа нужно взять и сохранить Id, это Id корня дерева, который потребуется на следующем шаге для создания или получения компонента.
Для создания или получения компонента выполните POST-запрос:
АдресВашегоСервисаApi/GetOrAddComponent
{
"Token": {
"SecretKey": "caf508d2-XXXX-XXXX-XXXX-6a2ef73a2b49"
},
"Data": {
"ParentComponentId": "de52fe27-e7d3-4cdc-870d-838f84b074a4",
"TypeId": "59718ed7-408b-435a-8cc6-b378cd02e32e",
"SystemName": "MainService",
"DisplayName": "Сервис сбора данных"
}
}
Здесь:
{
"Data": {
"Id": "b81c82f3-f254-43be-a60e-a4511302e760",
...
},
"Code": 10
}
Нужно убедиться, что Code равно 10, что означает успешное выполнение. Из ответа нужно взять и сохранить Id, это Id компонента, который потребуется для отправки любых данных — ошибок, событий, проверок, метрик, лога.
Подробнее о работе с компонентами читайте в разделе Компоненты.