Beispiel #1
0
        public override void Execute(IDictionary <string, object> input)
        {
            var pathKey = input.Get <string>(PATH);

            var path         = _collectionProvider.GetValue(CollectionValues.TextTransformSource, pathKey);
            var content      = File.ReadAllText(path);
            var clipboard    = WindowsClipboard.GetText();
            var templateCode = @"
using System;
using Leftware.Common;

public class DynamicTransform : ITransformExecutor
{
    {{ code }}
}
";
            var code         = templateCode.FormatLiquid(new { code = content });
            //var currentAssemblyLocation = GetType().Assembly.Location;
            var compileResult = UtilCompile.Compile(code);

            if (!compileResult.Success)
            {
                _console.WriteLine("Failed to compile dynamic code");
                _console.WriteLine(compileResult.Errors[0]);
                return;
            }

            var assembly = compileResult.Assembly;
            var t        = assembly.GetType("DynamicTransform");
            var instance = (ITransformExecutor)Activator.CreateInstance(t);
            var result   = instance.Execute(clipboard);

            WindowsClipboard.SetText(result);
        }