예제 #1
0
        public void SBoolTranslateTest()
        {
            var processor = ScriptProcessorFactory.GetNew();

            SBool testBool = processor.CreateBool(true);

            var obj = ScriptOutAdapter.Translate(testBool);

            Assert.IsTrue(obj.GetType() == typeof(bool));
            Assert.IsTrue((bool)obj == testBool.Value);
        }
예제 #2
0
        private async Task <SData> ConvertToSDataAsync(JToken value, SDataType dataType)
        {
            SData result = null;

            try
            {
                switch (dataType)
                {
                case SDataType.Bool:
                    result = new SBool(value.Value <bool>());
                    break;

                case SDataType.DateTime:
                    result = new SDateTime(value.Value <DateTime>());
                    break;

                case SDataType.Duration:
                    result = new SDuration(value.Value <string>());
                    break;

                case SDataType.Number:
                    result = new SNumber(value.Value <double>());
                    break;

                case SDataType.NumberList:
                    result = new SNumberList(value.Select(i => i.Value <double>()).ToList());
                    break;

                case SDataType.String:
                    result = new SString(value.Value <string>());
                    break;

                case SDataType.StringDict:
                    result = new SStringDict(value.ToDictionary(i => ((JProperty)i).Name, i => ((JProperty)i).Value.Value <string>()));
                    break;

                case SDataType.StringList:
                    result = new SStringList(value.Select(i => i.Value <string>()).ToList());
                    break;
                }
            }
            catch (Exception e)
            {
                throw new EvalException($"Cannot convert {value.ToString()} to data type {dataType.ToString()}.", e);
            }

            return(await Task.FromResult(result));
        }
예제 #3
0
 /// <summary>
 /// Creates an instance of the bool primitive.
 /// </summary>
 internal SBool CreateBool(bool value)
 {
     return(SBool.Factory(value));
 }