private string ExecuteRazor(FileUri template, dynamic model) { string webConfig = template.PhysicalFullDirectory; webConfig = webConfig.Remove(webConfig.LastIndexOf("\\")) + "\\web.config"; if (!File.Exists(webConfig)) { string filename = HostingEnvironment.MapPath("~/DesktopModules/OpenContent/Templates/web.config"); File.Copy(filename, webConfig); } var writer = new StringWriter(); try { var razorEngine = new RazorEngine("~/" + template.FilePath, ModuleContext, LocalResourceFile); razorEngine.Render(writer, model); } catch (Exception ex) { LoggingUtils.RenderEngineException(this, ex); string stack = string.Join("\n", ex.StackTrace.Split('\n').Where(s => s.Contains("\\Portals\\") && s.Contains("in")).Select(s => s.Substring(s.IndexOf("in"))).ToArray()); throw new TemplateException("Failed to render Razor template " + template.FilePath + "\n" + stack, ex, model, template.FilePath); } return(writer.ToString()); }