/// <summary> /// Initializes a new instance of the <see cref="SparkEngine"/> class. /// </summary> /// <exception cref="ArgumentNullException"><c>viewBaseType</c> or <c>handler</c> is <c>null</c>.</exception> public SparkEngine(Type viewBaseType, InitializeViewHandler handler) { if (viewBaseType == null) { throw new ArgumentNullException("viewBaseType"); } if (handler == null) { throw new ArgumentNullException("handler"); } _viewBaseType = viewBaseType; _handler = handler; _currentEngine = this; SparkSettings settings = new SparkSettings(); settings.AddNamespace("System.Collections.Generic"); settings.AddNamespace("HttpServer.Mvc.Views"); settings.AddNamespace("HttpServer.ViewEngine.Spark"); settings.AddAssembly(GetType().Assembly); settings.AddAssembly(typeof(Server).Assembly); _engine = new SparkViewEngine(settings) { ViewFolder = new MyViewFolder(), DefaultPageBaseType = viewBaseType.FullName }; }
/// <summary> /// Initializes a new instance of the <see cref="SparkEngine"/> class. /// </summary> public SparkEngine() { _currentEngine = this; SparkSettings settings = new SparkSettings(); settings.AddNamespace("System.Collections.Generic"); _engine = new SparkViewEngine(settings) { ViewFolder = new MyViewFolder(), DefaultPageBaseType = typeof (SparkView).FullName }; }
/// <summary> /// Initializes a new instance of the <see cref="SparkEngine"/> class. /// </summary> public SparkEngine() { _currentEngine = this; SparkSettings settings = new SparkSettings(); settings.AddNamespace("System.Collections.Generic"); _engine = new SparkViewEngine(settings) { ViewFolder = new MyViewFolder(), DefaultPageBaseType = typeof(SparkView).FullName }; }
/// <summary> /// Initializes a new instance of the <see cref="SparkEngine"/> class. /// </summary> /// <exception cref="ArgumentNullException"><c>viewBaseType</c> or <c>handler</c> is <c>null</c>.</exception> public SparkEngine(Type viewBaseType, InitializeViewHandler handler) { if (viewBaseType == null) throw new ArgumentNullException("viewBaseType"); if (handler == null) throw new ArgumentNullException("handler"); _viewBaseType = viewBaseType; _handler = handler; _currentEngine = this; SparkSettings settings = new SparkSettings(); settings.AddNamespace("System.Collections.Generic"); settings.AddNamespace("HttpServer.Mvc.Views"); settings.AddNamespace("HttpServer.ViewEngine.Spark"); settings.AddAssembly(GetType().Assembly); settings.AddAssembly(typeof (Server).Assembly); _engine = new SparkViewEngine(settings) { ViewFolder = new MyViewFolder(), DefaultPageBaseType = viewBaseType.FullName }; }
/// <summary> /// Create a view. /// </summary> /// <param name="context">Request and controller information.</param> /// <param name="viewData">Information that is used in the view</param> /// <param name="writer">Write the view using this writer.</param> public void Render(IControllerContext context, IViewData viewData, TextWriter writer) { _currentEngine = this; string viewUri = context.ViewPath + ".spark"; try { // try to find our view, or create it if it do not exist. SparkView view = GenerateView(context, viewUri, viewData); // attach view data and render it. view.ViewData = viewData; view.Uri = context.RequestContext.Request.Uri; view.ControllerName = context.ControllerName; view.ControllerUri = context.ControllerUri; view.Title = context.Title; view.ActionName = context.ActionName; // Using custom view, let the implementor have a chance to init it. if (_handler != null) { _handler(view, context); } view.RenderView(writer); // release it. _engine.ReleaseInstance(view); writer.Flush(); } catch (Exception err) { _logger.Error("Failed to render " + viewUri + " using viewdata " + ViewDataToString(viewData)); throw new InvalidOperationException("Failed to render " + viewUri, err); } }
/// <summary> /// Create a view. /// </summary> /// <param name="context">Request and controller information.</param> /// <param name="viewData">Information that is used in the view</param> /// <param name="writer">Write the view using this writer.</param> public void Render(IControllerContext context, IViewData viewData, TextWriter writer) { _currentEngine = this; string viewUri = context.ViewPath + ".spark"; try { // try to find our view, or create it if it do not exist. SparkView view = GenerateView(context, viewUri, viewData); // attach view data and render it. view.ViewData = viewData; view.Uri = context.RequestContext.Request.Uri; view.ControllerName = context.ControllerName; view.ControllerUri = context.ControllerUri; view.Title = context.Title; view.ActionName = context.ActionName; // Using custom view, let the implementor have a chance to init it. if (_handler != null) _handler(view, context); view.RenderView(writer); // release it. _engine.ReleaseInstance(view); writer.Flush(); } catch(Exception err) { _logger.Error("Failed to render " + viewUri + " using viewdata " + ViewDataToString(viewData)); throw new InvalidOperationException("Failed to render " + viewUri, err); } }