Exemple #1
0
        private async Task <ActionResult> GetPageViewResult(Controller controller, PageActionRoutingState state)
        {
            IEditablePageViewModel vm;
            var pageRoutingInfo = state.PageRoutingInfo;

            // Some page types have thier own specific view models which custom data
            switch (pageRoutingInfo.PageRoute.PageType)
            {
            case PageType.NotFound:
                controller.Response.StatusCode = (int)HttpStatusCode.NotFound;
                vm = _pageViewModelMapper.Map(state.PageData, state.VisualEditorMode);
                break;

            case PageType.CustomEntityDetails:
                var model = await GetCustomEntityModel(state);

                vm = _pageViewModelMapper.MapCustomEntityModel(state.PageData.Template.CustomEntityModelType, state.PageData, model, state.VisualEditorMode);
                break;

            //case PageType.Error:
            //    Response.StatusCode = (int)HttpStatusCode.InternalServerError;
            //    vm = _pageViewModelMapper.Map(page, siteViewerMode);
            //    break;
            default:
                vm = _pageViewModelMapper.Map(state.PageData, state.VisualEditorMode);
                break;
            }


            // set cache
            SetCache(vm, state);

            var result = new ViewResult()
            {
                ViewData = new ViewDataDictionary(vm),
                ViewName = state.PageData.Template.FullPath
            };

            return(result);
        }