Esempio n. 1
0
        private Func <DataASTMutable.WarewolfAtom, DataASTMutable.WarewolfAtom> TryConvertFunc(ICaseConvertTO conversionType, IExecutionEnvironment env, int update)
        {
            var convertFunct = CaseConverter.GetFuncs();
            Func <string, string> returnedFunc;

            if (convertFunct.TryGetValue(conversionType.ConvertType, out returnedFunc))
            {
                if (returnedFunc != null)
                {
                    return(a =>
                    {
                        var upper = returnedFunc.Invoke(a.ToString());
                        var evalled = env.Eval(upper, update);

                        if (evalled.IsWarewolfAtomResult)
                        {
                            var warewolfAtomResult = evalled as WarewolfDataEvaluationCommon.WarewolfEvalResult.WarewolfAtomResult;
                            if (warewolfAtomResult != null)
                            {
                                return warewolfAtomResult.Item;
                            }
                            return DataASTMutable.WarewolfAtom.Nothing;
                        }

                        return DataASTMutable.WarewolfAtom.NewDataString(WarewolfDataEvaluationCommon.EvalResultToString(evalled));
                    });
                }
            }
            throw  new Exception("Convert option does not exist");
        }
Esempio n. 2
0
        static Func <DataStorage.WarewolfAtom, DataStorage.WarewolfAtom> TryConvertFunc(ICaseConvertTO conversionType, IExecutionEnvironment env, int update)
        {
            var convertFunct = CaseConverter.GetFuncs();

            if (convertFunct.TryGetValue(conversionType.ConvertType, out Func <string, string> returnedFunc) && returnedFunc != null)
            {
                return(a =>
                {
                    var upper = returnedFunc.Invoke(a.ToString());
                    var evalled = env.Eval(upper, update);

                    if (evalled.IsWarewolfAtomResult)
                    {
                        if (evalled is CommonFunctions.WarewolfEvalResult.WarewolfAtomResult warewolfAtomResult)
                        {
                            return warewolfAtomResult.Item;
                        }
                        return DataStorage.WarewolfAtom.Nothing;
                    }

                    return DataStorage.WarewolfAtom.NewDataString(CommonFunctions.evalResultToString(evalled));
                });
            }
            throw new Exception(ErrorResource.ConvertOptionDoesNotExist);
        }