Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Блок кода
languagec#
themeRDark
linenumberstrue
using System.Collections.Generic;
using System.IO;
using Robin.ActionSDK;
using Robin.ActionSDK.Exceptions;
using Robin.Engine.Services.Interfaces;
using Robin.Types;

namespace Robin.SdkExamples
{
    public class ReadFile : BaseRobinAction
    {
        private readonly IResourcesFolderService _resourcesFolderService;

        public ReadFile(IActionLogger logger, IResourcesFolderService resourcesFolderService) : base(logger)
        {
            _resourcesFolderService = resourcesFolderService;
        }

        public override IDictionary<string, object> Execute(IDictionary<string, object> parameters)
        {
            var fileName = ((RobinFilePath)parameters["fileName"]).Value;

            if (!TryResolveFilePath(fileName, out var filePath))
                throw new RobinException($"Файл не найден {fileName}", "Robin.Exception.FileNotFound");

            var text = File.ReadAllText(filePath);
            return new Dictionary<string, object>
            {
                {"text", text}
            };
        }

        private bool TryResolveFilePath(string fileName, out string filePath)
        {
            filePath = fileName;
            if (File.Exists(fileName))
                return true;

            filePath = Path.Combine(_resourcesFolderService.GetResourcesFolderPath(), fileName);
            return File.Exists(filePath);
        }
    }
}

RobinDeserializeService

Сервис для десериализации робин-объектов, сериализованных в XML.

Методы

Блок кода
languagec#
themeRDark
object XmlToObj(string xmlObject);

Примеры использования

Блок кода
languagec#
themeRDark
linenumberstrue
using System.Collections.Generic;
using Robin.ActionSDK;
using Robin.Engine.Services.Interfaces;

namespace Robin.SdkExamples
{
    public class DeserializeObject : BaseRobinAction
    {
        private readonly IRobinDeserializeService _deserializeService;

        public DeserializeObject(IActionLogger logger, IRobinDeserializeService deserializeService) : base(logger)
        {
            _deserializeService = deserializeService;
        }

        public override IDictionary<string, object> Execute(IDictionary<string, object> parameters)
        {
            var serializedValue = (string)parameters["serializedValue"];

            var deserializedValue = _deserializeService.XmlToObj(serializedValue);
           
            return new Dictionary<string, object>
            {
                {"deserializedValue", deserializedValue}
            };
        }
    }
}