Код ниже использует вспомогательный класс — 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 компонента, который потребуется для отправки любых данных — ошибок, событий, проверок, метрик, лога.
Подробнее о работе с компонентами читайте в разделе Компоненты.