Esempio n. 1
0
        /// <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
            };
        }
Esempio n. 2
0
 /// <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
                   };
 }
Esempio n. 3
0
        /// <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
            };
        }
Esempio n. 4
0
        /// <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
            };
        }
Esempio n. 5
0
        /// <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);
            }
        }
Esempio n. 6
0
        /// <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);
            }
        }