Введение
Все сервисы находятся в пространстве имен Robin.Engine.Services.Interfaces, для удобства использования можно добавить директиву using
using Robin.Engine.Services.Interfaces;
Для использования сервиса нужно добавить его в конструктор основного класса действия (класса, который наследует BaseRobinAction).
public class MyCustomAction : BaseRobinAction
{
private readonly IConfigurationService _configurationService;
public MyCustomAction(IActionLogger logger, IConfigurationService configurationService) : base(logger)
{
_configurationService = configurationService;
}
public override IDictionary<string, object> Execute(IDictionary<string, object> parameters)
{
return null;
}
}
ActionLogger
Сервис логирования есть в родительском классе, доступен из каждого действия по имени Logger.
Есть перегрузки как с уже форматированной строкой, так и с коллбэком, который будет вызван, если сообщение подходит для логирования с текущим выбранным уровнем логирования сценария и текущего действия. Лог передается из действия в приложение-инициатор сессии (студия, плеер, и т. д.) и в файл лога робота.
Методы
void Debug(string message); void Debug(Func<IDictionary<string, string>> parameters); void Info(string message); void Info(Func<IDictionary<string, string>> parameters); void Warn(string message); void Warn(Func<IDictionary<string, string>> parameters); void Error(string message); void Error(Func<IDictionary<string, string>> parameters); void Business(Func<IDictionary<string, string>> parameters);
Примеры использования
using System.Collections.Generic;
using Robin.ActionSDK;
using Robin.Engine.Services.Interfaces;
namespace Robin.SdkExamples
{
public class MyCustomAction : BaseRobinAction
{
public MyCustomAction(IActionLogger logger) : base(logger)
{
}
public override IDictionary<string, object> Execute(IDictionary<string, object> parameters)
{
var infoMessage = (string)parameters["infoMessage"];
var debugMessage = (string)parameters["debugMessage"];
Logger.Debug(() => new Dictionary<string, string>
{
{"message", debugMessage}
});
Logger.Info($"Получено сообщение {infoMessage}");
return null;
}
}
}
ConfigurationService
Сервис для получения конфигурационных параметров, расположенных в файле %LOCALAPPDATA%\robin\env.cfg
Методы
// Получение конфигурационного значения по ключу object GetConfigValue(string key); // Получение всех имеющихся в конфигурационном файле ключей по регулярному выражению List<string> GetKeys(string pattern);
Примеры использования
using System.Collections.Generic;
using System.Linq;
using Robin.ActionSDK;
using Robin.Engine.Services.Interfaces;
namespace Robin.SdkExamples
{
public class GetConfigValue : BaseRobinAction
{
private readonly IConfigurationService _configurationService;
public GetConfigValue(IActionLogger logger, IConfigurationService configurationService) : base(logger)
{
_configurationService = configurationService;
}
public override IDictionary<string, object> Execute(IDictionary<string, object> parameters)
{
var key = (string)parameters["key"];
var pattern = (string)parameters["pattern"];
var valueByKey = _configurationService.GetConfigValue(key);
var allKeys = _configurationService.GetKeys(pattern);
return new Dictionary<string, object>
{
{ "value", valueByKey },
{ "keys", allKeys.Cast<object>().ToList() }
};
}
}
}
ConverterService
DisposeService
Сервис для освобождения неуправляемых ресурсов.
Методы
void RegisterResource(IDisposable disposableResource);
Примеры использования