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"); }
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); }