示例#1
0
 public PageActionInvokerProvider(
     IPageLoader loader,
     IPageFactoryProvider pageFactoryProvider,
     IPageModelFactoryProvider modelFactoryProvider,
     IRazorPageFactoryProvider razorPageFactoryProvider,
     IActionDescriptorCollectionProvider collectionProvider,
     IEnumerable <IFilterProvider> filterProviders,
     ParameterBinder parameterBinder,
     IModelMetadataProvider modelMetadataProvider,
     ITempDataDictionaryFactory tempDataFactory,
     IOptions <MvcOptions> mvcOptions,
     IOptions <HtmlHelperOptions> htmlHelperOptions,
     IPageHandlerMethodSelector selector,
     RazorProject razorProject,
     DiagnosticSource diagnosticSource,
     ILoggerFactory loggerFactory)
 {
     _loader = loader;
     _pageFactoryProvider      = pageFactoryProvider;
     _modelFactoryProvider     = modelFactoryProvider;
     _razorPageFactoryProvider = razorPageFactoryProvider;
     _collectionProvider       = collectionProvider;
     _filterProviders          = filterProviders.ToArray();
     _valueProviderFactories   = mvcOptions.Value.ValueProviderFactories.ToArray();
     _parameterBinder          = parameterBinder;
     _modelMetadataProvider    = modelMetadataProvider;
     _tempDataFactory          = tempDataFactory;
     _htmlHelperOptions        = htmlHelperOptions.Value;
     _selector         = selector;
     _razorProject     = razorProject;
     _diagnosticSource = diagnosticSource;
     _logger           = loggerFactory.CreateLogger <PageActionInvoker>();
 }
示例#2
0
        public ComicUpdater(ComicDatabase database, IPageLoader pageLoader)
        {
            this.database   = database;
            this.pageLoader = pageLoader;

            importingComics = new List <ComicData>();
        }
示例#3
0
        public PageActionInvokerProvider(
            IPageFactory factory,
            IPageHandlerMethodSelector selector,
            IPageLoader loader,
            DiagnosticListener diagnosticSource,
            ILoggerFactory loggerFactory,
            IEnumerable <IFilterProvider> filterProviders,
            IModelMetadataProvider metadataProvider,
            ITempDataDictionaryFactory tempDataFactory,
            IOptions <MvcOptions> options,
            IOptions <MvcViewOptions> viewOptions,
            TempDataPropertyProvider pagePersistedPropertyProvider)
        {
            _factory          = factory;
            _selector         = selector;
            _diagnosticSource = diagnosticSource;
            _loader           = loader;
            _metadataProvider = metadataProvider;
            _tempDataFactory  = tempDataFactory;
            _viewOptions      = viewOptions;
            _pagePersistedPropertyProvider = pagePersistedPropertyProvider;

            _filterProviders        = filterProviders.OrderBy(fp => fp.Order).ToArray();
            _logger                 = loggerFactory.CreateLogger <PageActionInvoker>();
            _valueProviderFactories = options.Value.ValueProviderFactories.ToArray();
        }
示例#4
0
 public RequestHandlerInfo(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, IPageLoader pageLoader, LinkGenerator linkGenerator)
 {
     _locker  = new object();
     _locker2 = new object();
     _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider;
     _pageLoader    = pageLoader;
     _linkGenerator = linkGenerator;
 }
示例#5
0
 public Spider(IUriMapper uriMapper, IUriTracker uriTracker, IPageLoader pageLoader, IPageArchive pageArchive, IPageParser pageParser, ILogger logger)
 {
     UriMapper   = uriMapper;
     UriTracker  = uriTracker;
     PageLoader  = pageLoader;
     PageArchive = pageArchive;
     PageParser  = pageParser;
     Logger      = logger;
 }
        public PageLoaderMatcherPolicy(IPageLoader loader)
        {
            if (loader == null)
            {
                throw new ArgumentNullException(nameof(loader));
            }

            _loader = loader;
        }
 public RoleManagerController(AppRoleManager roleManager, AppUserManager userManager, ApplicationDbContext dbContext, IActionDescriptorCollectionProvider actionDescriptor, IPageLoader pageLoader, AppSignInManager signInManager)
 {
     _roleManager      = roleManager;
     _userManager      = userManager;
     _dbContext        = dbContext;
     _actionDescriptor = actionDescriptor;
     _pageLoader       = pageLoader;
     _signInManager    = signInManager;
 }
示例#8
0
 public WebFormsMiddleware(
     IPageFactory pageFactory,
     IPageContextFactory pageContextFactory,
     IPageLoader pageLoader,
     RequestDelegate next)
 {
     _pageFactory        = pageFactory ?? throw new ArgumentNullException(nameof(pageFactory));
     _pageLoader         = pageLoader ?? throw new ArgumentNullException(nameof(pageLoader));
     _pageContextFactory = pageContextFactory ?? throw new ArgumentNullException(nameof(pageContextFactory));
     _next = next ?? throw new ArgumentNullException(nameof(next));
 }
示例#9
0
        private static PageActionInvokerProvider CreateInvokerProvider(
            IPageLoader loader,
            IActionDescriptorCollectionProvider actionDescriptorProvider,
            IPageFactoryProvider pageProvider                  = null,
            IPageModelFactoryProvider modelProvider            = null,
            IRazorPageFactoryProvider razorPageFactoryProvider = null,
            RazorProjectFileSystem fileSystem                  = null)
        {
            var tempDataFactory = new Mock <ITempDataDictionaryFactory>();

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

            if (fileSystem == null)
            {
                fileSystem = Mock.Of <RazorProjectFileSystem>();
            }

            var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
            var modelBinderFactory    = TestModelBinderFactory.CreateDefault();
            var mvcOptions            = new MvcOptions
            {
                AllowValidatingTopLevelNodes = true,
            };

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

            return(new PageActionInvokerProvider(
                       loader,
                       pageProvider ?? Mock.Of <IPageFactoryProvider>(),
                       modelProvider ?? Mock.Of <IPageModelFactoryProvider>(),
                       razorPageFactoryProvider ?? Mock.Of <IRazorPageFactoryProvider>(),
                       actionDescriptorProvider,
                       new IFilterProvider[0],
                       parameterBinder,
                       modelMetadataProvider,
                       modelBinderFactory,
                       tempDataFactory.Object,
                       Options.Create(new MvcOptions()),
                       Options.Create(new HtmlHelperOptions()),
                       Mock.Of <IPageHandlerMethodSelector>(),
                       fileSystem,
                       new DiagnosticListener("Microsoft.AspNetCore"),
                       NullLoggerFactory.Instance,
                       new ActionResultTypeMapper()));
        }
 public DownloadViewModel(
     IValidationService validationService,
     IPageLoader pageLoader,
     IPageSaver pageSaver)
 {
     _validationService = validationService;
     _pageLoader        = pageLoader;
     _pageSaver         = pageSaver;
     Sources            = new ObservableCollection <SourceViewModel> {
         new SourceViewModel()
     };
     StartDownloadCommand  = new Command(StartDownload);
     CancelDownloadCommand = new Command(CancelDownload);
     AddSourceCommand      = new Command(AddSource);
 }
示例#11
0
        private static PageActionInvokerProvider CreateInvokerProvider(
            IPageLoader loader,
            IActionDescriptorCollectionProvider actionDescriptorProvider,
            IPageFactoryProvider pageProvider                  = null,
            IPageModelFactoryProvider modelProvider            = null,
            IRazorPageFactoryProvider razorPageFactoryProvider = null,
            RazorProject razorProject = null)
        {
            var tempDataFactory = new Mock <ITempDataDictionaryFactory>();

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

            if (razorProject == null)
            {
                razorProject = Mock.Of <RazorProject>();
            }

            var modelMetadataProvider = TestModelMetadataProvider.CreateDefaultProvider();
            var parameterBinder       = new ParameterBinder(
                modelMetadataProvider,
                TestModelBinderFactory.CreateDefault(),
                Mock.Of <IModelValidatorProvider>());

            return(new PageActionInvokerProvider(
                       loader,
                       pageProvider ?? Mock.Of <IPageFactoryProvider>(),
                       modelProvider ?? Mock.Of <IPageModelFactoryProvider>(),
                       razorPageFactoryProvider ?? Mock.Of <IRazorPageFactoryProvider>(),
                       actionDescriptorProvider,
                       new IFilterProvider[0],
                       parameterBinder,
                       modelMetadataProvider,
                       tempDataFactory.Object,
                       new TestOptionsManager <MvcOptions>(),
                       new TestOptionsManager <HtmlHelperOptions>(),
                       Mock.Of <IPageHandlerMethodSelector>(),
                       razorProject,
                       new DiagnosticListener("Microsoft.AspNetCore"),
                       NullLoggerFactory.Instance));
        }
 public MyPageActionInvokerProvider(
     IPageLoader loader,
     IPageFactoryProvider pageFactoryProvider,
     IPageModelFactoryProvider modelFactoryProvider,
     IRazorPageFactoryProvider razorPageFactoryProvider,
     IActionDescriptorCollectionProvider collectionProvider,
     IEnumerable <IFilterProvider> filterProviders,
     ParameterBinder parameterBinder,
     IModelMetadataProvider modelMetadataProvider,
     IModelBinderFactory modelBinderFactory,
     ITempDataDictionaryFactory tempDataFactory,
     IOptions <MvcOptions> mvcOptions,
     IOptions <HtmlHelperOptions> htmlHelperOptions,
     IPageHandlerMethodSelector selector,
     RazorProjectFileSystem razorFileSystem,
     DiagnosticSource diagnosticSource,
     ILoggerFactory loggerFactory,
     IActionResultTypeMapper mapper) : base(loader, pageFactoryProvider, modelFactoryProvider, razorPageFactoryProvider, collectionProvider, filterProviders, parameterBinder, modelMetadataProvider, modelBinderFactory, tempDataFactory, mvcOptions, htmlHelperOptions, selector, razorFileSystem, diagnosticSource, loggerFactory, mapper)
 {
 }
示例#13
0
 public PageActionInvokerProvider(
     IPageLoader loader,
     IPageFactoryProvider pageFactoryProvider,
     IPageModelFactoryProvider modelFactoryProvider,
     IRazorPageFactoryProvider razorPageFactoryProvider,
     IActionDescriptorCollectionProvider collectionProvider,
     IEnumerable <IFilterProvider> filterProviders,
     ParameterBinder parameterBinder,
     IModelMetadataProvider modelMetadataProvider,
     IModelBinderFactory modelBinderFactory,
     ITempDataDictionaryFactory tempDataFactory,
     IOptions <MvcOptions> mvcOptions,
     IOptions <HtmlHelperOptions> htmlHelperOptions,
     IPageHandlerMethodSelector selector,
     DiagnosticListener diagnosticListener,
     ILoggerFactory loggerFactory,
     IActionResultTypeMapper mapper,
     IActionContextAccessor actionContextAccessor)
 {
     _loader = loader;
     _pageFactoryProvider      = pageFactoryProvider;
     _modelFactoryProvider     = modelFactoryProvider;
     _modelBinderFactory       = modelBinderFactory;
     _razorPageFactoryProvider = razorPageFactoryProvider;
     _collectionProvider       = collectionProvider;
     _filterProviders          = filterProviders.ToArray();
     _valueProviderFactories   = mvcOptions.Value.ValueProviderFactories.ToArray();
     _parameterBinder          = parameterBinder;
     _modelMetadataProvider    = modelMetadataProvider;
     _tempDataFactory          = tempDataFactory;
     _mvcOptions            = mvcOptions.Value;
     _htmlHelperOptions     = htmlHelperOptions.Value;
     _selector              = selector;
     _diagnosticListener    = diagnosticListener;
     _logger                = loggerFactory.CreateLogger <PageActionInvoker>();
     _mapper                = mapper;
     _actionContextAccessor = actionContextAccessor ?? ActionContextAccessor.Null;
 }
示例#14
0
 public PageActionInvokerProvider(
     IPageLoader loader,
     IPageFactoryProvider pageFactoryProvider,
     IPageModelFactoryProvider modelFactoryProvider,
     IRazorPageFactoryProvider razorPageFactoryProvider,
     IActionDescriptorCollectionProvider collectionProvider,
     IEnumerable <IFilterProvider> filterProviders,
     ParameterBinder parameterBinder,
     IModelMetadataProvider modelMetadataProvider,
     IModelBinderFactory modelBinderFactory,
     ITempDataDictionaryFactory tempDataFactory,
     IOptions <MvcOptions> mvcOptions,
     IOptions <HtmlHelperOptions> htmlHelperOptions,
     IPageHandlerMethodSelector selector,
     DiagnosticListener diagnosticListener,
     ILoggerFactory loggerFactory,
     IActionResultTypeMapper mapper)
     : this(
         loader,
         pageFactoryProvider,
         modelFactoryProvider,
         razorPageFactoryProvider,
         collectionProvider,
         filterProviders,
         parameterBinder,
         modelMetadataProvider,
         modelBinderFactory,
         tempDataFactory,
         mvcOptions,
         htmlHelperOptions,
         selector,
         diagnosticListener,
         loggerFactory,
         mapper,
         actionContextAccessor : null)
 {
 }
示例#15
0
 public PageLoaderDecoratorWithNoDupeUrls(IPageLoader baseLoader)
 {
     _baseLoader        = baseLoader;
     _alreadyLoadedUrls = new HashSet <string>();
 }
 public RouteAnalyzer(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, IPageLoader pageLoader)
 {
     _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider;
     _pageLoader = pageLoader;
 }
示例#17
0
 static KayakLoader()
 {
     KayakFlightsUrl = ConfigurationManager.AppSettings[KayakFlightUrlKey];
     DocumentLoader  = UnityConfig.Container.Resolve <IPageLoader>();
 }
示例#18
0
        private IEnumerable <AreaInfo> GetAreaInfos(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, IPageLoader pageLoader, LinkGenerator linkGenerator)
        {
            //根,从area开始
            var result = new List <AreaInfo>();

            //遍历区域
            foreach (var area in actionDescriptorCollectionProvider.ActionDescriptors.Items.GroupBy(item => item.RouteValues["area"]))
            {
                var areaInfo = new AreaInfo {
                    Name = area.Key
                };
                result.Add(areaInfo);

                //遍历控制器
                foreach (var controllerActions in area.OfType <ControllerActionDescriptor>().GroupBy(c => c.ControllerTypeInfo))
                {
                    //跳过重复控制器,不知道为什么,里面有些重复项目
                    if (areaInfo.Controllers.Any(c => c.TypeFullName == controllerActions.Key.FullName))
                    {
                        continue;
                    }

                    var conInfo = new AreaInfo.ControllerInfo
                    {
                        Name         = controllerActions.First().ControllerName,
                        TypeFullName = controllerActions.Key.FullName,
                        Description  = (controllerActions.Key.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute)
                                       ?.Description,
                        Area = controllerActions.First().RouteValues["area"],
                    };
                    areaInfo.Controllers.Add(conInfo);

                    //遍历动作
                    foreach (var action in controllerActions)
                    {
                        var act = new AreaInfo.ControllerInfo.ActionInfo
                        {
                            Name                  = action.MethodInfo.Name,
                            ActionName            = action.ActionName,
                            HandlerIdentification = (action.MethodInfo.GetCustomAttribute(typeof(RequestHandlerIdentificationAttribute)) as RequestHandlerIdentificationAttribute)
                                                    ?.UniqueKey,
                            Signature   = action.MethodInfo.ToString(),
                            Description = (action.MethodInfo.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute)
                                          ?.Description,
                            Url = linkGenerator.GetPathByAction(action.ActionName, conInfo.Name, new { area = conInfo.Area }),
                            HttpMethodLimits = action.ActionConstraints?.OfType <HttpMethodActionConstraint>().FirstOrDefault()?.HttpMethods.ToList(),
                            MethodInfo       = action.MethodInfo,
                            ActionDescriptor = action
                        };
                        conInfo.Actions.Add(act);
                    }
                }

                //遍历Razor Page
                foreach (var pageActionDescriptor in area.OfType <PageActionDescriptor>())
                {
                    //载入Razor Page,会从程序集加载或编译page文件并缓存
                    var page = pageLoader.Load(pageActionDescriptor);
                    //也是剔除重复
                    if (areaInfo.Pages.Any(p => p.TypeFullName == page.HandlerTypeInfo.FullName))
                    {
                        continue;
                    }

                    var pageInfo = new AreaInfo.PageInfo
                    {
                        Name         = page.DisplayName,
                        Area         = page.AreaName,
                        TypeFullName = page.HandlerTypeInfo.FullName,
                        Description  = (page.HandlerTypeInfo.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute)
                                       ?.Description
                    };

                    foreach (var handlerMethod in page.HandlerMethods)
                    {
                        pageInfo.PageHandlers.Add(new AreaInfo.PageInfo.PageHandlerInfo
                        {
                            HttpMethod            = handlerMethod.HttpMethod,
                            Name                  = handlerMethod.Name,
                            HandlerIdentification = (handlerMethod.MethodInfo.GetCustomAttribute(typeof(RequestHandlerIdentificationAttribute)) as RequestHandlerIdentificationAttribute)
                                                    ?.UniqueKey,
                            Signature   = handlerMethod.MethodInfo.ToString(),
                            Description = (handlerMethod.MethodInfo.GetCustomAttribute(typeof(DescriptionAttribute)) as DescriptionAttribute)
                                          ?.Description,
                            Url              = linkGenerator.GetPathByPage(page.DisplayName, handlerMethod.Name, new { area = page.AreaName }),
                            MethodInfo       = handlerMethod.MethodInfo,
                            ActionDescriptor = page
                        });
                    }
                    areaInfo.Pages.Add(pageInfo);
                }
            }

            return(result);
        }
示例#19
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ProxyService"/> class.
 /// </summary>
 /// <param name="BasePageLoader">The angle sharp service.</param>
 public ProxyService(IPageLoader <IHtmlLoadable> simpleLoader)
 {
     _consumedProxies  = new ConcurrentBag <IProxy>();
     _availableProxies = new ConcurrentBag <IProxy>();
     _simpleLoader     = simpleLoader;
 }
 public PageNavigation(IPageLoader pageLoader, INavigationItemFactory navigationItemFactory)
 {
     this.pageLoader            = pageLoader ?? throw new ArgumentNullException(nameof(pageLoader));
     this.navigationItemFactory = navigationItemFactory ?? throw new ArgumentNullException(nameof(navigationItemFactory));
 }
示例#21
0
 public SocketWebServer(IPageLoader pageLoader, IListener listener)
 {
     _pageLoader = pageLoader;
     _listener = listener;
 }
示例#22
0
 /// <summary>
 /// 初始化一个<see cref="PageHtmlGenerator"/>类型的实例
 /// </summary>
 /// <param name="actionDescriptorCollectionProvider">操作描述集合提供程序</param>
 /// <param name="pageLoader">页面加载器</param>
 public PageHtmlGenerator(IActionDescriptorCollectionProvider actionDescriptorCollectionProvider,
                          IPageLoader pageLoader)
 {
     _actionDescriptorCollectionProvider = actionDescriptorCollectionProvider;
     _pageLoader = pageLoader;
 }