public ActionResult Execute([Bind(Prefix = "")]ExecuteRequest request) { var result = new ExecuteResult(); var template = request.Template; var templateParams = TemplateCompilationParameters.CreateFromLanguage(request.Language); var compiler = new TemplateCompiler(templateParams); dynamic inputModel = null; GeneratorResults generatorResults; using (var writer = new StringWriter()) { generatorResults = compiler.GenerateCode(template, writer, new RazorPadMvcEngineHost(request.RazorLanguage)); result.SetGeneratorResults(generatorResults); result.GeneratedCode = writer.ToString(); } if (generatorResults != null && generatorResults.Success) { CompilerResults compilerResults = compiler.Compile(generatorResults); result.SetCompilerResults(compilerResults); if (!compilerResults.Errors.HasErrors) { result.TemplateOutput = Sandbox.Execute(request.Language, template, inputModel); } result.Success = true; } return Json(result, JsonRequestBehavior.AllowGet); }
public RazorTemplateEditorViewModel(string filename = null) { TemplateCompiler = new TemplateCompiler(); if(!string.IsNullOrWhiteSpace(filename)) LoadFromFile(filename); TemplateModelProperties = new RazorTemplateModelPropertiesViewModel(typeof(object)); TemplateModelProperties.PropertiesUpdated += (x, y) => Refresh(); Execute(); }
public ActionResult Parse([Bind(Prefix = "")]ParseRequest request) { var result = new ParseResult(); using (var writer = new StringWriter()) { var generatorResults = new TemplateCompiler().GenerateCode(request.Template, writer); result.SetGeneratorResults(generatorResults); result.GeneratedCode = writer.ToString(); } return Json(result, JsonRequestBehavior.AllowGet); }
public RazorTemplateViewModel(RazorDocument document = null, ModelBuilders modelBuilderFactory = null, ModelProviders modelProviders = null) { _document = document ?? new RazorDocument(); _modelBuilderFactory = modelBuilderFactory; _modelProviderFactory = modelProviders; _savedModels = new Dictionary<Type, string>(); var modelProviderNames = _modelProviderFactory.Providers.Select(x => (string)new ModelProviderFactoryName(x.Value)); AvailableModelProviders = new ObservableCollection<string>(modelProviderNames); _selectedModelProvider = new ModelProviderName(_document.ModelProvider); Errors = new ObservableCollection<RazorPadError>(); Messages = new ObservableTextWriter(); TemplateCompiler = new TemplateCompiler(); AttachToModelProviderEvents(_document.ModelProvider); }
public void TestInitialize() { _loader = new RazorDocumentManager(new XmlRazorDocumentSource(new RazorPad.Core.Tests.Stubs.ModelProvidersStub())); _templateCompiler = new TemplateCompiler(); }
public void TestInitialize() { _templateCompiler = new TemplateCompiler(); }