예제 #1
0
        public void Extend(ScriptExecutionContext context)
        {
            context.Engine.SetValue("contentAction", new EventDelegate(() =>
            {
                if (context.TryGetValue("event", out var temp) && temp is EnrichedContentEvent contentEvent)
                {
                    return(contentEvent.Status.ToString());
                }

                return(JsValue.Null);
            }));

            context.Engine.SetValue("contentUrl", new EventDelegate(() =>
            {
                if (context.TryGetValue("event", out var temp) && temp is EnrichedContentEvent contentEvent)
                {
                    return(urlGenerator.ContentUI(contentEvent.AppId, contentEvent.SchemaId, contentEvent.Id));
                }

                return(JsValue.Null);
            }));

            context.Engine.SetValue("assetContentUrl", new EventDelegate(() =>
            {
                if (context.TryGetValue("event", out var temp) && temp is EnrichedAssetEvent assetEvent)
                {
                    return(urlGenerator.AssetContent(assetEvent.AppId, assetEvent.Id.ToString()));
                }

                return(JsValue.Null);
            }));

            context.Engine.SetValue("assetContentAppUrl", new EventDelegate(() =>
            {
                if (context.TryGetValue("event", out var temp) && temp is EnrichedAssetEvent assetEvent)
                {
                    return(urlGenerator.AssetContent(assetEvent.AppId, assetEvent.Id.ToString()));
                }

                return(JsValue.Null);
            }));

            context.Engine.SetValue("assetContentSlugUrl", new EventDelegate(() =>
            {
                if (context.TryGetValue("event", out var temp) && temp is EnrichedAssetEvent assetEvent)
                {
                    return(urlGenerator.AssetContent(assetEvent.AppId, assetEvent.FileName.Slugify()));
                }

                return(JsValue.Null);
            }));
        }
예제 #2
0
        public void ExtendAsync(ScriptExecutionContext context)
        {
            if (!context.TryGetValue <DomainId>("appId", out var appId))
            {
                return;
            }

            if (!context.TryGetValue <ClaimsPrincipal>("user", out var user))
            {
                return;
            }

            var action = new GetReferencesDelegate((references, callback) => GetReferences(context, appId, user, references, callback));

            context.Engine.SetValue("getReference", action);
            context.Engine.SetValue("getReferences", action);
        }
        private void AddAsset(ScriptExecutionContext context)
        {
            if (!context.TryGetValue <DomainId>("appId", out var appId))
            {
                return;
            }

            if (!context.TryGetValue <ClaimsPrincipal>("user", out var user))
            {
                return;
            }

            var action = new GetAssetsDelegate((references, callback) => GetAssets(context, appId, user, references, callback));

            context.Engine.SetValue("getAsset", action);
            context.Engine.SetValue("getAssets", action);
        }
예제 #4
0
        public void Extend(ScriptExecutionContext context)
        {
            if (context.TryGetValue <DomainId>("appId", out var appId))
            {
                var engine = context.Engine;

                engine.SetValue("incrementCounter", new Func <string, long>(name =>
                {
                    return(Increment(appId, name));
                }));

                engine.SetValue("resetCounter", new Func <string, long, long>((name, value) =>
                {
                    return(Reset(appId, name, value));
                }));
            }
        }
예제 #5
0
        public void ExtendAsync(ScriptExecutionContext context)
        {
            if (!context.TryGetValue <DomainId>("appId", out var appId))
            {
                return;
            }

            var increment = new Action <string, Action <JsValue> >((name, callback) =>
            {
                IncrementV2(context, appId, name, callback);
            });

            context.Engine.SetValue("incrementCounterV2", increment);

            var reset = new CounterResetV2((name, callback, value) =>
            {
                ResetV2(context, appId, name, callback, value);
            });

            context.Engine.SetValue("resetCounterV2", reset);
        }
예제 #6
0
        public void Extend(ScriptExecutionContext context)
        {
            if (!context.TryGetValue <DomainId>("appId", out var appId))
            {
                return;
            }

            var increment = new Func <string, long>(name =>
            {
                return(Increment(appId, name));
            });

            context.Engine.SetValue("incrementCounter", increment);

            var reset = new CounterReset((name, value) =>
            {
                return(Reset(appId, name, value));
            });

            context.Engine.SetValue("resetCounter", reset);
        }