Example #1
0
            public void Add(ScriptDrivenObject target, string methodName)
            {
                var exist = _handlers.Exists(x => ReferenceEquals(x.Target, target) && x.MethodName.ToLowerInvariant() == methodName.ToLowerInvariant());

                if (!exist)
                {
                    _handlers.Add(new Handler
                    {
                        Target     = target,
                        MethodName = methodName,
                        Method     = target.GetMethodExecutor(methodName)
                    });
                }
            }
Example #2
0
        public void InitExternalLibrary(ScriptingEngine runtime, ExternalLibraryDef library)
        {
            var loadedObjects = new ScriptDrivenObject[library.Modules.Count];
            int i             = 0;

            foreach (var module in library.Modules)
            {
                var loaded   = runtime.LoadModuleImage(module.Image);
                var instance = runtime.CreateUninitializedSDO(loaded);
                SetGlobalProperty(module.Symbol, instance);
                module.InjectOrder = _injectedProperties.FindProperty(module.Symbol);
                loadedObjects[i++] = instance;
            }

            _externalLibs.Add(library);
            loadedObjects.ForEach(runtime.InitializeSDO);
        }
        public void CompileEnvironmentModules(RuntimeEnvironment env)
        {
            var scripts = env.GetUserAddedScripts().Where(x => x.Type == UserAddedScriptType.Module && env.GetGlobalProperty(x.Symbol) == null)
                          .ToArray();

            if (scripts.Length > 0)
            {
                var loadedObjects = new ScriptDrivenObject[scripts.Length];
                for (var i = 0; i < scripts.Length; i++)
                {
                    var script = scripts[i];
                    var loaded = LoadModuleImage(script.Image);

                    var instance = CreateUninitializedSDO(loaded);
                    env.SetGlobalProperty(script.Symbol, instance);
                    loadedObjects[i] = instance;
                }

                foreach (var instance in loadedObjects)
                {
                    InitializeSDO(instance);
                }
            }
        }
Example #4
0
 public void InitializeSDO(ScriptDrivenObject sdo)
 {
     sdo.Initialize(_machine);
 }
 public CustomAuthRequirement(ScriptDrivenObject provider)
 {
     _provider = provider;
 }
Example #6
0
 public void Remove(ScriptDrivenObject target, string methodName)
 {
     _handlers.RemoveAll(x => ReferenceEquals(x.Target, target) && x.MethodName.ToLowerInvariant() == methodName.ToLowerInvariant());
 }