public PageActionInvokerProvider(
     PageLoader pageLoader,
     PageActionInvokerCache pageActionInvokerCache,
     IModelMetadataProvider modelMetadataProvider,
     ITempDataDictionaryFactory tempDataFactory,
     IOptions <MvcOptions> mvcOptions,
     IOptions <MvcViewOptions> mvcViewOptions,
     IPageHandlerMethodSelector selector,
     DiagnosticListener diagnosticListener,
     ILoggerFactory loggerFactory,
     IActionResultTypeMapper mapper,
     IActionContextAccessor?actionContextAccessor = null)
 {
     _pageLoader             = pageLoader;
     _pageActionInvokerCache = pageActionInvokerCache;
     _valueProviderFactories = mvcOptions.Value.ValueProviderFactories.ToArray();
     _modelMetadataProvider  = modelMetadataProvider;
     _tempDataFactory        = tempDataFactory;
     _mvcViewOptions         = mvcViewOptions.Value;
     _selector              = selector;
     _diagnosticListener    = diagnosticListener;
     _logger                = loggerFactory.CreateLogger <PageActionInvoker>();
     _mapper                = mapper;
     _actionContextAccessor = actionContextAccessor ?? ActionContextAccessor.Null;
 }
 public PageRequestDelegateFactory(
     PageActionInvokerCache cache,
     IModelMetadataProvider modelMetadataProvider,
     ITempDataDictionaryFactory tempDataFactory,
     IOptions <MvcOptions> mvcOptions,
     IOptions <MvcViewOptions> mvcViewOptions,
     IPageHandlerMethodSelector selector,
     DiagnosticListener diagnosticListener,
     ILoggerFactory loggerFactory,
     IActionResultTypeMapper mapper)
     : this(cache, modelMetadataProvider, tempDataFactory, mvcOptions, mvcViewOptions, selector, diagnosticListener, loggerFactory, mapper, null)
 {
 }
Exemple #3
0
    private static PageActionInvokerProvider CreateInvokerProvider(
        PageLoader loader,
        IPageFactoryProvider pageProvider                  = null,
        IPageModelFactoryProvider modelProvider            = null,
        IRazorPageFactoryProvider razorPageFactoryProvider = null,
        MvcOptions mvcOptions = null)
    {
        var tempDataFactory = new Mock <ITempDataDictionaryFactory>();

        tempDataFactory
        .Setup(t => t.GetTempData(It.IsAny <HttpContext>()))
        .Returns((HttpContext context) => new TempDataDictionary(context, Mock.Of <ITempDataProvider>()));

        var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
        var modelBinderFactory    = TestModelBinderFactory.CreateDefault();

        mvcOptions = mvcOptions ?? new MvcOptions();

        var parameterBinder = new ParameterBinder(
            modelMetadataProvider,
            TestModelBinderFactory.CreateDefault(),
            Mock.Of <IObjectModelValidator>(),
            Options.Create(mvcOptions),
            NullLoggerFactory.Instance);

        var cache = new PageActionInvokerCache(
            pageProvider ?? Mock.Of <IPageFactoryProvider>(),
            modelProvider ?? Mock.Of <IPageModelFactoryProvider>(),
            razorPageFactoryProvider ?? Mock.Of <IRazorPageFactoryProvider>(),
            new IFilterProvider[0],
            parameterBinder,
            modelMetadataProvider,
            modelBinderFactory,
            Options.Create(mvcOptions));

        return(new PageActionInvokerProvider(
                   loader,
                   cache,
                   modelMetadataProvider,
                   tempDataFactory.Object,
                   Options.Create(mvcOptions),
                   Options.Create(new MvcViewOptions()),
                   Mock.Of <IPageHandlerMethodSelector>(),
                   new DiagnosticListener("Microsoft.AspNetCore"),
                   NullLoggerFactory.Instance,
                   new ActionResultTypeMapper()));
    }