コード例 #1
0
ファイル: SparkRender.cs プロジェクト: haf/Topshelf
        public string Render <TViewData>(string template, TViewData data)
        {
            var settings = new SparkSettings();

            settings.AddNamespace("Topshelf.Dashboard");
            settings.PageBaseType = typeof(TopshelfView).FullName;

            var engine = new SparkViewEngine(settings)
            {
                ViewFolder = _viewFolder,
            };

            ISparkView instance = engine.CreateInstance(new SparkViewDescriptor().AddTemplate(template));

            var view = (TopshelfView <TViewData>)instance;

            view.SetModel(data);

            var sb = new StringBuilder();

            using (var writer = new StringWriter(sb))
                view.RenderView(writer);

            return(sb.ToString());
        }
コード例 #2
0
ファイル: SparkCodec.cs プロジェクト: tanerst/schedumail
		private static void RenderToResponse(IHttpEntity response, ISparkView templateBase)
		{
			Encoding targetEncoding = Encoding.UTF8;
			response.ContentType.CharSet = targetEncoding.HeaderName;
			TextWriter writer = null;
			bool ownsWriter = false;
			try
			{
				if (response is ISupportsTextWriter)
				{
					writer = ((ISupportsTextWriter) response).TextWriter;
				}
				else
				{
					writer = new DeterministicStreamWriter(response.Stream, targetEncoding, StreamActionOnDispose.None);
					ownsWriter = true;
				}
				templateBase.RenderView(writer);
			}
			finally
			{
				if (ownsWriter)
					writer.Dispose();
			}
		}
コード例 #3
0
        private static void RenderToResponse(IHttpEntity response, ISparkView templateBase)
        {
            Encoding targetEncoding = Encoding.UTF8;

            response.ContentType.CharSet = targetEncoding.HeaderName;
            TextWriter writer     = null;
            bool       ownsWriter = false;

            try
            {
                if (response is ISupportsTextWriter)
                {
                    writer = ((ISupportsTextWriter)response).TextWriter;
                }
                else
                {
                    writer     = new DeterministicStreamWriter(response.Stream, targetEncoding, StreamActionOnDispose.None);
                    ownsWriter = true;
                }
                templateBase.RenderView(writer);
            }
            finally
            {
                if (ownsWriter)
                {
                    writer.Dispose();
                }
            }
        }
コード例 #4
0
ファイル: SparkViewExtensions.cs プロジェクト: yhtsnda/spark
        public static string RenderView(this ISparkView view)
        {
            var writer = new StringWriter();

            view.RenderView(writer);
            return(writer.ToString());
        }
コード例 #5
0
        protected virtual string RenderTheView(ISparkView view)
        {
            var writer = new StringWriter();

            view.RenderView(writer);
            writer.Flush();
            return(writer.GetStringBuilder().ToString());
        }
コード例 #6
0
ファイル: CompiledViewEntry.cs プロジェクト: yhtsnda/spark
 public void ReleaseInstance(ISparkView view)
 {
     if (LanguageFactory != null)
     {
         LanguageFactory.InstanceReleased(Compiler, view);
     }
     Activator.Release(Compiler.CompiledType, view);
 }
コード例 #7
0
 private static string Render(ISparkView view)
 {
     var builder = new StringBuilder();
     using (var writer = new StringWriter(builder))
     {
         view.RenderView(writer);
         writer.Flush();
     }
     return builder.ToString();
 }
コード例 #8
0
        public ISparkView CreateInstance()
        {
            ISparkView view = this.Activator.Activate(this.Compiler.CompiledType);

            if (this.LanguageFactory != null)
            {
                this.LanguageFactory.InstanceCreated(this.Compiler, view);
            }
            return(view);
        }
コード例 #9
0
        private static string Render(ISparkView view)
        {
            var builder = new StringBuilder();

            using (var writer = new StringWriter(builder))
            {
                view.RenderView(writer);
                writer.Flush();
            }
            return(builder.ToString());
        }
コード例 #10
0
        private void SetModel <TModel>(TModel model, ISparkView view) where TModel : class
        {
            var fubuPage = view as FubuSparkView <TModel>;

            if (fubuPage == null)
            {
                return;
            }

            fubuPage.ServiceLocator = _services;
            fubuPage.SetModel(model);
        }
コード例 #11
0
 public override void InstanceReleased(ViewCompiler compiler, ISparkView view)
 {
     if (compiler is PythonViewCompiler && view is IScriptingSparkView)
     {
         PythonEngineManager.InstanceReleased(
             (PythonViewCompiler)compiler,
             (IScriptingSparkView)view);
     }
     else
     {
         base.InstanceCreated(compiler, view);
     }
 }
コード例 #12
0
        public void ReleaseInstance(ISparkView view)
        {
            if (view == null)
            {
                throw new ArgumentNullException("view");
            }
            ISparkViewEntry entry = this.CompiledViewHolder.Lookup(view.GeneratedViewId);

            if (entry != null)
            {
                entry.ReleaseInstance(view);
            }
        }
コード例 #13
0
ファイル: PythonLanguageFactory.cs プロジェクト: Eilon/spark
 public override void InstanceCreated(ViewCompiler compiler, ISparkView view)
 {
     if (compiler is PythonViewCompiler && view is IScriptingSparkView)
     {
         PythonEngineManager.InstanceCreated(
             (PythonViewCompiler) compiler,
             (IScriptingSparkView) view);
     }
     else
     {
         base.InstanceCreated(compiler, view);
     }
 }
コード例 #14
0
        public void UsesTheSparkEngineToCreateAView()
        {
            var expectedSparkView = new TestSparkResourceView();
            var sparkViewEngine   = MockRepository.GenerateStub <ISparkViewEngine>()
                                    .StubCreateInstance(expectedSparkView);

            sparkViewEngine.StubCreateInstance(expectedSparkView);
            var resolver = new SparkViewResolverBuilder().With(sparkViewEngine).Build();

            ISparkView resolvedView = resolver.Create(null, null);

            Assert.That(resolvedView, Is.EqualTo(expectedSparkView));
        }
コード例 #15
0
ファイル: RubyLanguageFactory.cs プロジェクト: yhtsnda/spark
 public override void InstanceCreated(ViewCompiler compiler, ISparkView view)
 {
     if (compiler is RubyViewCompiler && view is IScriptingSparkView)
     {
         RubyEngineManager.InstanceCreated(
             (RubyViewCompiler)compiler,
             (IScriptingSparkView)view);
     }
     else
     {
         base.InstanceCreated(compiler, view);
     }
 }
コード例 #16
0
        public void RenderUsesCorrectlyNamedViewFromResolverToWriteToWriter()
        {
            string     viewName          = "fooView";
            var        viewData          = new { X = "b", Y = new { A = "C" } };
            var        sparkViewResolver = MockRepository.GenerateStub <ISparkViewResolver>();
            ISparkView sparkview         = MockRepository.GenerateStub <ISparkView>();

            sparkViewResolver.Stub(x => x.Create(viewName, viewData)).Return(sparkview);
            var configuration = new Dictionary <string, string> {
                { "TemplateName", viewName }
            };
            var        sparkRenderer = new SparkRendererBuilder().With(sparkViewResolver).Build();
            TextWriter writer        = MockRepository.GenerateStub <TextWriter>();

            sparkRenderer.Render(viewData, writer, configuration);

            sparkview.AssertWasCalled(x => x.RenderView(writer));
        }
コード例 #17
0
ファイル: SparkViewFactory.cs プロジェクト: pjdennis/fubumvc
 public ViewEngineResult(ISparkView view, SparkViewFactory factory)
 {
     View    = view;
     Factory = factory;
 }
コード例 #18
0
 public virtual void InstanceReleased(ViewCompiler compiler, ISparkView view)
 {
 }
コード例 #19
0
ファイル: ViewContext.cs プロジェクト: nieve/fubumvc
 public ViewContext(ActionContext actionContext, ISparkView view)
     : base(actionContext.HttpContext, actionContext.RouteData, actionContext.ActionNamespace, actionContext.ActionName)
 {
     View = view;
 }
コード例 #20
0
ファイル: DefaultViewActivator.cs プロジェクト: Eilon/spark
 public void Release(Type type, ISparkView view)
 {
 }
コード例 #21
0
ファイル: SparkViewEngine.cs プロジェクト: bbarry/spark
        public void ReleaseInstance(ISparkView view)
        {
            if (view == null) throw new ArgumentNullException("view");

            var entry = CompiledViewHolder.Current.Lookup(view.GeneratedViewId);
            if (entry != null)
                entry.ReleaseInstance(view);
        }
コード例 #22
0
ファイル: CompositeViewEntry.cs プロジェクト: yhtsnda/spark
 public void ReleaseInstance(ISparkView view)
 {
     throw new System.NotImplementedException();
 }
コード例 #23
0
 public virtual void InstanceCreated(ViewCompiler compiler, ISparkView view)
 {
 }
コード例 #24
0
 public void Release(Type type, ISparkView view)
 {
     kernel.ReleaseComponent(view);
 }
コード例 #25
0
 public ViewContext(ActionContext actionContext, ISparkView view, TextWriter writer)
     : base(actionContext.HttpContext, actionContext.RouteData, actionContext.ActionNamespace, actionContext.ActionName)
 {
     Writer = writer;
     View = view;
 }
コード例 #26
0
 public ViewSearchResult(ISparkView view, ActionContext actionContext)
 {
     View          = view;
     ActionContext = actionContext;
 }
コード例 #27
0
 public void Release(Type type, ISparkView view)
 {
     throw new NotImplementedException();
 }
コード例 #28
0
 public ViewContext(ActionContext actionContext, ISparkView view) : base(actionContext.ActionNamespace, actionContext.ActionName)
 {
     View = view;
 }
コード例 #29
0
        public void Render(object viewData, TextWriter writer, IDictionary <string, string> configuration)
        {
            ISparkView sparkView = _sparkViewResolver.Create(configuration[SparkConfigKeys.TemplateName], viewData);

            sparkView.RenderView(writer);
        }
コード例 #30
0
 public virtual void ReleaseView(ActionContext actionContext, ISparkView view)
 {
     this.Engine.ReleaseInstance(view);
 }
コード例 #31
0
 public void Release(Type type, ISparkView view)
 {
 }
コード例 #32
0
 public override void InstanceReleased(ViewCompiler compiler, ISparkView view)
 {
     if (compiler is RubyViewCompiler && view is IScriptingSparkView)
     {
         RubyEngineManager.InstanceReleased(
             (RubyViewCompiler)compiler,
             (IScriptingSparkView)view);
     }
     else
     {
         base.InstanceCreated(compiler, view);
     }
 }
コード例 #33
0
ファイル: WindsorViewActivator.cs プロジェクト: Eilon/spark
 public void Release(Type type, ISparkView view)
 {
     kernel.ReleaseComponent(view);
 }
コード例 #34
0
 public ViewEngineResult(ISparkView view, SparkViewFactory factory)
 {
     View = view;
     Factory = factory;
 }
コード例 #35
0
ファイル: CompiledViewHolder.cs プロジェクト: dtabuenc/spark
 public void ReleaseInstance(ISparkView view)
 {
     if (LanguageFactory != null)
         LanguageFactory.InstanceReleased(Compiler, view);
     Activator.Release(Compiler.CompiledType, view);
 }
コード例 #36
0
 public ViewContext(ActionContext actionContext, ISparkView view) :
     base(actionContext.HttpContext, actionContext.ViewPath)
 {
     View = view;
 }
コード例 #37
0
 public virtual void InstanceReleased(ViewCompiler compiler, ISparkView view)
 {
 }
コード例 #38
0
 public static ISparkViewEngine StubCreateInstance(this ISparkViewEngine sparkViewEngine, ISparkView view)
 {
     sparkViewEngine.Stub(x => x.CreateInstance(null)).IgnoreArguments().Return(view);
     return(sparkViewEngine);
 }
コード例 #39
0
 public void Release(Type type, ISparkView view)
 {
     throw new NotImplementedException();
 }
コード例 #40
0
ファイル: CompositeViewEntry.cs プロジェクト: otac0n/spark
 public void ReleaseInstance(ISparkView view)
 {
     throw new System.NotImplementedException();
 }
コード例 #41
0
ファイル: ViewContext.cs プロジェクト: ryansroberts/Nancy
 public ViewContext(ActionContext actionContext, ISparkView view)
     : base(actionContext.HttpContext, actionContext.ViewPath)
 {
     View = view;
 }
コード例 #42
0
 public virtual void InstanceCreated(ViewCompiler compiler, ISparkView view)
 {
 }