예제 #1
0
 public SparkRenderViewBehavior(ISparkViewRenderer <IFubuPage> viewRenderder, SparkViewToken viewToken, ActionCall actionCall, IOutputWriter writer, IPageActivator activator)
     : base(PartialBehavior.Executes)
 {
     _viewRenderder = viewRenderder;
     _viewToken     = viewToken;
     _actionCall    = actionCall;
     _writer        = writer;
     _activator     = activator;
 }
예제 #2
0
 public SparkRenderViewBehavior(ISparkViewRenderer<IFubuPage> viewRenderder, SparkViewToken viewToken, ActionCall actionCall, IOutputWriter writer, IPageActivator activator)
     : base(PartialBehavior.Executes)
 {
     _viewRenderder = viewRenderder;
     _viewToken = viewToken;
     _actionCall = actionCall;
     _writer = writer;
     _activator = activator;
 }
 public SparkRenderViewBehavior(
     ISparkViewRenderer<IFubuView> viewRenderder,
     IServiceLocator serviceLocator,
     IFubuRequest request,
     SparkViewToken viewToken,
     ActionCall actionCall,
     IOutputWriter writer)
     : base(PartialBehavior.Executes)
 {
     _viewRenderder = viewRenderder;
     _serviceLocator = serviceLocator;
     _request = request;
     _viewToken = viewToken;
     _actionCall = actionCall;
     _writer = writer;
 }
예제 #4
0
 public SparkRenderViewBehavior(
     ISparkViewRenderer <IFubuView> viewRenderder,
     IServiceLocator serviceLocator,
     IFubuRequest request,
     SparkViewToken viewToken,
     ActionCall actionCall,
     IOutputWriter writer)
     : base(PartialBehavior.Executes)
 {
     _viewRenderder  = viewRenderder;
     _serviceLocator = serviceLocator;
     _request        = request;
     _viewToken      = viewToken;
     _actionCall     = actionCall;
     _writer         = writer;
 }
예제 #5
0
        public string RenderSparkView(SparkViewToken viewToken, ActionCall actionCall, Action <T> configureView)
        {
            var actionNamespace = actionCall.HandlerType.Namespace;
            var actionName      = viewToken.ActionName;
            var viewName        = viewToken.Name;

            TextWriter writer = new StringWriter();

            if (viewToken.MatchedDescriptor != null && viewToken.MatchedDescriptor.Language == LanguageType.Javascript)
            {
                var entry = _viewFactory.Engine.CreateEntry(viewToken.MatchedDescriptor);
                return(entry.SourceCode);
            }

            var viewResult = findSparkViewByConvention(actionNamespace, actionName, viewName);

            if (_viewContextHolder.OuterViewContext == null)
            {
                _viewContextHolder.OuterViewContext = new ViewContext(viewResult.ActionContext, viewResult.View);
            }

            var configurableView = viewResult.View as T;

            if (configurableView != null)
            {
                configureView(configurableView);
            }

            var sparkView = viewResult.View as SparkView;

            if (sparkView != null)
            {
                sparkView.Render(_viewContextHolder.OuterViewContext, writer);
            }

            return(writer.ToString());
        }
예제 #6
0
 public SparkViewNode(SparkViewToken viewToken, ActionCall actionCall)
     : base(typeof(SparkRenderViewBehavior))
 {
     _viewToken  = viewToken;
     _actionCall = actionCall;
 }
예제 #7
0
 public SparkViewNode(SparkViewToken viewToken, ActionCall actionCall)
     : base(typeof (SparkRenderViewBehavior))
 {
     _viewToken = viewToken;
     _actionCall = actionCall;
 }
예제 #8
0
 public JavaScriptOutputNode(SparkViewToken viewToken, ActionCall actionCall)
     : base(viewToken, actionCall)
 {
 }