Получить настройки скрипта и агента
В блок Внешний скрипт надо добавить TSLab.DataModel.dll и TSLab.ScriptEngine.dll.
using System.Text;
using TSLab.DataModel;
using TSLab.Script;
using TSLab.Script.Handlers;
using TSLab.ScriptExecution.Realtime;
namespace MyLib
{
public class TestSettings : IExternalScript
{
public void Execute(IContext ctx, ISecurity sec)
{
// В блок 'Внешний скрипт' необходимо добавить TSLab.DataModel.dll, TSLab.ScriptExecution.dll.
// Получить настройки скрипта
var labOptions = ctx.GetLabOptions();
if (labOptions != null)
{
var sb = new StringBuilder();
sb.AppendLine($"=== LabOptions ===");
sb.AppendLine($"Дата от: ({labOptions.UseDateFrom}) {labOptions.DateFromEdit}");
sb.AppendLine($"Дата к: ({labOptions.UseDateTo}) {labOptions.DateToEdit}");
ctx.Log(sb.ToString(), MessageType.Info, true);
}
// Получить настройки агента
var rtOptions = ctx.GetRtOptions();
if (rtOptions != null)
{
var sb = new StringBuilder();
sb.AppendLine($"=== RtOptions ===");
sb.AppendLine($"Исполнять входы сразу: {rtOptions.DefEntryApprove}");
sb.AppendLine($"Исполнять выходы сразу: {rtOptions.DefExitApprove}");
ctx.Log(sb.ToString(), MessageType.Info, true);
}
}
}
public static class TSLabExtensions
{
public static LabOptions GetLabOptions(this IContext ctx)
{
var fi = ctx.Runtime.GetType().GetProperty("Options");
return fi?.GetValue(ctx.Runtime) as LabOptions;
}
public static RealtimeScriptOptions GetRtOptions(this IContext ctx)
{
var fi = ctx.Runtime.GetType().GetProperty("Manager");
var val = fi?.GetValue(ctx.Runtime) as RealtimeDataManager;
return val?.RtData?.Options;
}
}
}Полный список настроек агента:
Last updated
Was this helpful?