Zidium

Код ниже использует вспомогательный класс — 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-запрос:

Url запроса

АдресВашегоСервисаApi/GetOrCreateComponentType

Тело запроса
{
    "Token": {
        "SecretKey": "caf508d2-XXXX-XXXX-XXXX-6a2ef73a2b49"
    },
    "Data": {
        "SystemName": "Application.Console",
        "DisplayName": "Консольные приложения"
    }
}

Здесь:

  • Token — раздел с токеном авторизации. В нём:
    • SecretKey — ключ доступа к Api, посмотрите в личном кабинете;
  • Data — раздел с данными типа компонента. В нём:
    • SystemName — системное имя типа компонента, должно быть уникальным. Если вы хотите получить один из предустановленных (системных) типов, то используйте имена
      • System.ComponentTypes.WebSite — Веб-сайты
      • System.ComponentTypes.DataBase — Базы данных
      • System.ComponentTypes.Domain — Домены
      • System.ComponentTypes.Others — Прочее
      • System.ComponentTypes.Folder — Папка (для создания папок в дереве компонентов)
    • DisplayName — Отображаемое имя типа компонента.

В ответ возвратится сообщение следующего формата:
{
    "Data": {
        "Id": "fbc54d8d-76be-4a15-9b97-0ecc051d813a",
        "SystemName": "Application.Console",
        "DisplayName": "Консольные приложения",
        "IsSystem": false
    },
    "Code": 10
}

Нужно убедиться, что Code равно 10, что означает успешное выполнение. Из ответа нужно взять и сохранить Id, это Id типа компонента, который потребуется на следующем шаге для создания или получения компонента.

Для создания компонента нужно также определить его положение в иерархии (дереве компонентов). У каждого компонента есть родитель — другой компонент, в котором он расположен. Самый простой вариант — использовать в качестве родителя компонент "корень дерева" (root).

Для получения корня дерева выполните POST-запрос:

Url запроса

АдресВашегоСервисаApi/GetRootComponent

Тело запроса
{
    "Token": {
        "SecretKey": "caf508d2-XXXX-XXXX-XXXX-6a2ef73a2b49"
    }
}

Здесь:

  • Token — раздел с токеном авторизации. В нём:
    • SecretKey — ключ доступа к Api, посмотрите в личном кабинете;

В ответ возвратится сообщение следующего формата:
{
    "Data": {
        "Id": "421fc118-cf04-41c6-8220-6cd2caaeb60c",
        ...
    },
    "Code": 10
}

Нужно убедиться, что Code равно 10, что означает успешное выполнение. Из ответа нужно взять и сохранить Id, это Id корня дерева, который потребуется на следующем шаге для создания или получения компонента.

Для создания или получения компонента выполните POST-запрос:

Url запроса

АдресВашегоСервиса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": "Сервис сбора данных"
    }
}

Здесь:

  • Token — раздел с токеном авторизации. В нём:
    • SecretKey — ключ доступа к Api, посмотрите в личном кабинете;
  • Data — раздел с данными компонента. В нём:
    • ParentComponentId — Id родителя в иерархии, с предыдущего шага;
    • TypeId — Id типа компонента, с предыдущего шага;
    • SystemName — системное имя компонента, должно быть уникальным в пределах родителя;
    • DisplayName — отображаемое имя компонента.

В ответ возвратится сообщение следующего формата:
{
    "Data": {
        "Id": "b81c82f3-f254-43be-a60e-a4511302e760",
        ...
    },
    "Code": 10
}

Нужно убедиться, что Code равно 10, что означает успешное выполнение. Из ответа нужно взять и сохранить Id, это Id компонента, который потребуется для отправки любых данных — ошибок, событий, проверок, метрик, лога.

Подробнее о работе с компонентами читайте в разделе Компоненты.