Exemplo n.º 1
0
 public void Run(ControllerBase controller, Dictionary<string, object> parameters)
 {
     var paramInfo = _method.GetParameters();
     var paramValues = new object[paramInfo.Length];
     for (var i = 0; i < paramInfo.Length; ++i)
     {
         object currentValue = null;
         if(!parameters.TryGetValue(paramInfo[i].Name, out currentValue))
         {
             if (paramInfo[i].ParameterType.IsClass)
             {
                 currentValue = null;
             }
             else
             {
                 currentValue = Activator.CreateInstance(paramInfo[i].ParameterType);
             }
         }
         paramValues[i] = Convert.ChangeType(currentValue, paramInfo[i].ParameterType);
     }
     _method.Invoke(controller, paramValues);
 }
Exemplo n.º 2
0
 private ViewBase FindAndExecuteView(string controllerName, string actionName, Dictionary<string, object> parameters, TextWriter output, ControllerBase controller, string layoutName)
 {
     var viewKey = controllerName + "/" + actionName;
     CachedView viewData;
     viewData = GetCachedView(viewKey);
     if (viewData != null)
     {
         viewData = CheckCachedViewValidity(controllerName, actionName, viewData);
     }
     if (viewData == null)
     {
         viewData = LoadView(controllerName, actionName, viewKey, viewData);
         SaveViewInCache(viewKey, viewData);
     }
     var view = (ViewBase)Activator.CreateInstance(viewData.ViewType);
     view.Layout = layoutName;
     InitializeView(controller, null, view, output, new RenderContext());
     ExecuteViewWithFilter(controllerName, actionName, parameters, controller, view);
     return view;
 }
Exemplo n.º 3
0
 private ViewBase FindAndExecuteSharedView(SharedViewRole role, string sharedViewName, TextWriter output, ControllerBase controller, ViewBase parentView, Stream bodyContent, Dictionary<string,Action> sections)
 {
     var viewKey = "/#" + sharedViewName;
     CachedView viewData;
     viewData = GetCachedView(viewKey);
     if (viewData != null)
     {
         viewData = CheckCachedSharedViewValidity(role, sharedViewName, viewData);
     }
     if (viewData == null)
     {
         viewData = LoadSharedView(role, sharedViewName, viewKey, viewData);
         SaveViewInCache(viewKey, viewData);
     }
     var view = (ViewBase)Activator.CreateInstance(viewData.ViewType);
     InitializeView(controller, parentView, view, output, new RenderContext { BodyContent = bodyContent,Sections = sections });
     view.Execute();
     return view;
 }
Exemplo n.º 4
0
 private void ExecuteViewWithFilter(string controllerName, string actionName, Dictionary<string, object> parameters, ControllerBase controller, ViewBase view)
 {
     _pipelineFilter.BeforeView(controller, controllerName, actionName, parameters);
     try
     {
         view.Execute();
     }
     catch (Exception ex)
     {
         _pipelineFilter.ViewError(controller, controllerName, actionName, parameters, ex);
         throw;
     }
     _pipelineFilter.AfterView(controller, controllerName, actionName, parameters);
 }
Exemplo n.º 5
0
 private void ExecuteActionWithFilter(string controllerName, string actionName, Dictionary<string, object> parameters, ControllerBase controller, IActionRunner actionRunner)
 {
     _pipelineFilter.BeforeAction(controller, controllerName, actionName, parameters);
     try
     {
         actionRunner.Run(controller, parameters);
     }
     catch (Exception ex)
     {
         _pipelineFilter.ActionError(controller, controllerName, actionName, parameters, ex);
         throw;
     }
     _pipelineFilter.AfterAction(controller, controllerName, actionName, parameters);
 }
Exemplo n.º 6
0
 public IActionRunner FindAction(ControllerBase controller, string controllerName, string actionName)
 {
     return new Runner(controller.GetType().GetMethod(actionName));
 }
Exemplo n.º 7
0
 public void RequestComplete(ControllerBase controller, string controllerName, string actionName, Dictionary<string, object> parameters)
 {
 }
Exemplo n.º 8
0
        private ViewBase FindAndExecuteView(string controllerName, string actionName, Dictionary <string, object> parameters, TextWriter output, ControllerBase controller, string layoutName)
        {
            var        viewKey = controllerName + "/" + actionName;
            CachedView viewData;

            viewData = GetCachedView(viewKey);
            if (viewData != null)
            {
                viewData = CheckCachedViewValidity(controllerName, actionName, viewData);
            }
            if (viewData == null)
            {
                viewData = LoadView(controllerName, actionName, viewKey, viewData);
                SaveViewInCache(viewKey, viewData);
            }
            var view = (ViewBase)Activator.CreateInstance(viewData.ViewType);

            view.Layout = layoutName;
            InitializeView(controller, null, view, output, new RenderContext());
            ExecuteViewWithFilter(controllerName, actionName, parameters, controller, view);
            return(view);
        }
Exemplo n.º 9
0
 public void AfterAction(ControllerBase controller, string controllerName, string actionName, Dictionary<string, object> parameters)
 {
 }
Exemplo n.º 10
0
 public void BeforeView(ControllerBase controller, string controllerName, string actionName, Dictionary<string, object> parameters)
 {
 }
Exemplo n.º 11
0
 private void InitializeController(ControllerBase controller)
 {
     controller.ViewBag = new DynamicDictionary();
 }
Exemplo n.º 12
0
 private void ExecuteViewWithFilter(string controllerName, string actionName, Dictionary <string, object> parameters, ControllerBase controller, ViewBase view)
 {
     _pipelineFilter.BeforeView(controller, controllerName, actionName, parameters);
     try
     {
         view.Execute();
     }
     catch (Exception ex)
     {
         _pipelineFilter.ViewError(controller, controllerName, actionName, parameters, ex);
         throw;
     }
     _pipelineFilter.AfterView(controller, controllerName, actionName, parameters);
 }
Exemplo n.º 13
0
 private void ExecuteActionWithFilter(string controllerName, string actionName, Dictionary <string, object> parameters, ControllerBase controller, IActionRunner actionRunner)
 {
     _pipelineFilter.BeforeAction(controller, controllerName, actionName, parameters);
     try
     {
         actionRunner.Run(controller, parameters);
     }
     catch (Exception ex)
     {
         _pipelineFilter.ActionError(controller, controllerName, actionName, parameters, ex);
         throw;
     }
     _pipelineFilter.AfterAction(controller, controllerName, actionName, parameters);
 }
Exemplo n.º 14
0
 private void InitializeController(ControllerBase controller)
 {
     controller.ViewBag = new DynamicDictionary();
 }
Exemplo n.º 15
0
 public void ViewError(ControllerBase controller, string controllerName, string actionName, Dictionary<string, object> parameters, Exception error)
 {
 }
Exemplo n.º 16
0
 private void InitializeView(ControllerBase controller, ViewBase parentView, ViewBase view, TextWriter output, RenderContext renderContext)
 {
     if (controller != null)
     {
         view.ViewBag = controller.ViewBag;
     }
     else
     {
         view.ViewBag = parentView.ViewBag;
     }
     view.InitializeView(output, this, renderContext);
 }
Exemplo n.º 17
0
        private ViewBase FindAndExecuteSharedView(SharedViewRole role, string sharedViewName, TextWriter output, ControllerBase controller, ViewBase parentView, Stream bodyContent, Dictionary <string, Action> sections)
        {
            var        viewKey = "/#" + sharedViewName;
            CachedView viewData;

            viewData = GetCachedView(viewKey);
            if (viewData != null)
            {
                viewData = CheckCachedSharedViewValidity(role, sharedViewName, viewData);
            }
            if (viewData == null)
            {
                viewData = LoadSharedView(role, sharedViewName, viewKey, viewData);
                SaveViewInCache(viewKey, viewData);
            }
            var view = (ViewBase)Activator.CreateInstance(viewData.ViewType);

            InitializeView(controller, parentView, view, output, new RenderContext {
                BodyContent = bodyContent, Sections = sections
            });
            view.Execute();
            return(view);
        }