private void CompileCode(string code, object args)
        {
            Dictionary <string, Argument> dictionary = args as Dictionary <string, Argument>;

            if (code != null && dictionary != null)
            {
                string importsHeader = GetImportsHeader(base.Context, base.ModelItem);
                List <Tuple <string, Type, ArgumentDirection> > list = new List <Tuple <string, Type, ArgumentDirection> >(dictionary.Count);
                foreach (KeyValuePair <string, Argument> item in dictionary)
                {
                    list.Add(new Tuple <string, Type, ArgumentDirection>(item.Key, item.Value.ArgumentType, item.Value.Direction));
                }
                try
                {
                    InvokeCodeActivity.CreateCompilerRunner(code, importsHeader, list);
                    (base.ModelItem.GetCurrentValue() as InvokeCodeActivity).SetSuccessfulCompilation();
                    base.ModelItem.Properties["CompilationError"].ComputedValue = "";
                }
                catch (Exception ex)
                {
                    (base.ModelItem.GetCurrentValue() as InvokeCodeActivity).SetCompilationError(ex.Message);
                    base.ModelItem.Properties["CompilationError"].ComputedValue = ex.Message;
                }
            }
        }
 private string GetImportsHeader(EditingContext context, ModelItem modelItem)
 {
     return(InvokeCodeActivity.GetImports(EnumerateImports(context, modelItem)));
 }