Пример #1
0
        /// <summary>
        /// Maps data to an empty view model for a custom entity page.
        /// </summary>
        /// <param name="displayModelType">The type information of the display model to apply to the generic view model.</param>
        /// <param name="viewModel">The view model to map data to.</param>
        /// <param name="mappingParameters">The data passed through to map to the view model.</param>
        public virtual async Task MapCustomEntityViewModelAsync <TDisplayModel>(
            ICustomEntityPageViewModel <TDisplayModel> viewModel,
            CustomEntityPageViewModelBuilderParameters mappingParameters
            ) where TDisplayModel : ICustomEntityPageDisplayModel
        {
            await MapAsync(viewModel, mappingParameters);

            if (mappingParameters.CustomEntityModel == null)
            {
                throw new ArgumentNullException(nameof(mappingParameters.CustomEntityModel));
            }

            var customEntityRenderDetails = mappingParameters.CustomEntityModel;
            var publishStatusQuery        = mappingParameters.VisualEditorMode.ToPublishStatusQuery();

            var customModel = new CustomEntityRenderDetailsViewModel <TDisplayModel>();

            customModel.CustomEntityId        = customEntityRenderDetails.CustomEntityId;
            customModel.CustomEntityVersionId = customEntityRenderDetails.CustomEntityVersionId;
            customModel.Locale         = customEntityRenderDetails.Locale;
            customModel.Regions        = customEntityRenderDetails.Regions;
            customModel.Title          = customEntityRenderDetails.Title;
            customModel.UrlSlug        = customEntityRenderDetails.UrlSlug;
            customModel.WorkFlowStatus = customEntityRenderDetails.WorkFlowStatus;
            customModel.PublishDate    = customEntityRenderDetails.PublishDate;
            customModel.PublishStatus  = customEntityRenderDetails.PublishStatus;
            customModel.CreateDate     = customEntityRenderDetails.CreateDate;
            customModel.PageUrls       = customEntityRenderDetails.PageUrls;

            customModel.Model = await _customEntityDisplayModelMapper.MapDisplayModelAsync <TDisplayModel>(customEntityRenderDetails, publishStatusQuery);

            viewModel.CustomEntity = customModel;
        }
        public CustomEntityTemplateRegionTagBuilder(
            IPageBlockRenderer blockRenderer,
            IPageBlockTypeDataModelTypeFactory pageBlockDataModelTypeFactory,
            IPageBlockTypeFileNameFormatter pageBlockTypeFileNameFormatter,
            IVisualEditorStateService visualEditorStateService,
            ILogger <CustomEntityTemplateRegionTagBuilder <TModel> > logger,
            ViewContext viewContext,
            ICustomEntityPageViewModel <TModel> customEntityViewModel,
            string regionName
            )
        {
            if (regionName == null)
            {
                throw new ArgumentNullException(nameof(regionName));
            }
            if (string.IsNullOrWhiteSpace(regionName))
            {
                throw new ArgumentEmptyException(nameof(regionName));
            }
            if (customEntityViewModel == null)
            {
                throw new ArgumentNullException(nameof(customEntityViewModel));
            }

            _blockRenderer = blockRenderer;
            _pageBlockDataModelTypeFactory = pageBlockDataModelTypeFactory;
            _blockTypeFileNameFormatter    = pageBlockTypeFileNameFormatter;
            _visualEditorStateService      = visualEditorStateService;
            _logger                = logger;
            _regionName            = regionName;
            _customEntityViewModel = customEntityViewModel;
            _viewContext           = viewContext;
        }
Пример #3
0
 public ICustomEntityTemplateRegionTagBuilder <TModel> Create <TModel>(
     ViewContext viewContext,
     ICustomEntityPageViewModel <TModel> customEntityViewModel,
     string regionName
     )
     where TModel : ICustomEntityPageDisplayModel
 {
     return(new CustomEntityTemplateRegionTagBuilder <TModel>(_blockRenderer, _pageBlockTypeDataModelTypeFactory, _pageBlockTypeFileNameFormatter, viewContext, customEntityViewModel, regionName));
 }
Пример #4
0
        public ICustomEntityTemplateRegionTagBuilder <TModel> Create <TModel>(
            ViewContext viewContext,
            ICustomEntityPageViewModel <TModel> customEntityViewModel,
            string regionName
            )
            where TModel : ICustomEntityPageDisplayModel
        {
            var logger = _loggerFactory.CreateLogger <CustomEntityTemplateRegionTagBuilder <TModel> >();

            return(new CustomEntityTemplateRegionTagBuilder <TModel>(
                       _blockRenderer,
                       _pageBlockTypeDataModelTypeFactory,
                       _pageBlockTypeFileNameFormatter,
                       _visualEditorStateService,
                       logger,
                       viewContext,
                       customEntityViewModel,
                       regionName));
        }
 private Task ExampleCustomMappingAsync <TDisplayModel>(ICustomEntityPageViewModel <TDisplayModel> model)
     where TDisplayModel : ICustomEntityPageDisplayModel
 {
     return(Task.CompletedTask);
 }