Ejemplo n.º 1
0
        public bool TryConvert(Engine engine, object value, out JsValue result)
        {
            result = null;

            if (value is Enum)
            {
                result = value.ToString();
                return(true);
            }

            switch (value)
            {
            case IUser user:
                result = JintUser.Create(engine, user);
                return(true);

            case ClaimsPrincipal principal:
                result = JintUser.Create(engine, principal);
                return(true);

            case Instant instant:
                result = JsValue.FromObject(engine, instant.ToDateTimeUtc());
                return(true);

            case NamedContentData content:
                result = new ContentDataObject(engine, content);
                return(true);
            }

            return(false);
        }
Ejemplo n.º 2
0
        private static NamedContentData ExecuteScript(NamedContentData original, string script)
        {
            var engine = new Engine(o => o.Strict());

            var value = new ContentDataObject(engine, original);

            engine.SetValue("data", value);
            engine.Execute(script);

            value.TryUpdate(out var result);

            return(result);
        }
Ejemplo n.º 3
0
        public bool TryConvert(Engine engine, object value, [MaybeNullWhen(false)] out JsValue result)
        {
            result = null !;

            if (value is Enum)
            {
                result = value.ToString();
                return(true);
            }

            switch (value)
            {
            case IUser user:
                result = JintUser.Create(engine, user);
                return(true);

            case ClaimsPrincipal principal:
                result = JintUser.Create(engine, principal);
                return(true);

            case DomainId domainId:
                result = domainId.ToString();
                return(true);

            case Guid guid:
                result = guid.ToString();
                return(true);

            case Instant instant:
                result = JsValue.FromObject(engine, instant.ToDateTimeUtc());
                return(true);

            case Status status:
                result = status.ToString();
                return(true);

            case ContentData content:
                result = new ContentDataObject(engine, content);
                return(true);
            }

            return(false);
        }