示例#1
0
        public void Value_from_MakeError(string input)
        {
            var actual = SciterValue.MakeError(input);

            Assert.IsTrue(actual.IsErrorString);
            Assert.AreEqual(input, actual.AsString());
        }
        public Task GetRuntimeInfo(SciterElement element, SciterValue onCompleted, SciterValue onError)
        {
            try
            {
                var value = SciterValue.Create(
                    new {
                    FrameworkDescription = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription,
                    ProcessArchitecture  = System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture.ToString(),
                    OSArchitecture       = System.Runtime.InteropServices.RuntimeInformation.OSArchitecture.ToString(),
                    OSDescription        = System.Runtime.InteropServices.RuntimeInformation.OSDescription,
                    SystemVersion        = System.Runtime.InteropServices.RuntimeEnvironment.GetSystemVersion()
                });

                onCompleted.Invoke(value);
            }
            catch (Exception e)
            {
                onError.Invoke(SciterValue.MakeError(e.Message));
            }
            return(Task.CompletedTask);
        }
示例#3
0
        private ScriptEventResult ExceptionCallbackResult(Exception e)
        {
            if (!_isWrappedCallback || !_isAwaitable)
            {
                return(ScriptEventResult.Successful(SciterValue.MakeError(e?.Message)));
            }

            //TODO: Clean this up, maybe change the Dictionary<> implementation?
            var properties = (e)
                             .GetType()
                             .GetProperties(BindingFlags.Instance | BindingFlags.Public)
                             .Where(w => typeof(IConvertible).IsAssignableFrom(w.PropertyType))
                             .ToDictionary(key => key.Name, value => value.GetValue(e) as IConvertible);

            //.ToDictionary(key => key.Name, value => SciterValue.Create(value.GetValue(e.InnerException)));
            properties.Add(nameof(Type), e?.GetType().FullName);

            _callbackValue?.Invoke(SciterValue.Null, SciterValue.Create(properties));

            return(ScriptEventResult.Successful());
        }
示例#4
0
        public void Null_or_empty_input_for_MakeError_returns_null(string input)
        {
            var actual = SciterValue.MakeError(input);

            Assert.IsNull(actual);
        }