private ParameterBinder( IModelMetadataProvider modelMetadataProvider, IModelBinderFactory modelBinderFactory, IModelValidatorProvider validatorProvider, IObjectModelValidator validatorForBackCompatOnly, ILoggerFactory loggerFactory) { if (modelMetadataProvider == null) { throw new ArgumentNullException(nameof(modelMetadataProvider)); } if (modelBinderFactory == null) { throw new ArgumentNullException(nameof(modelBinderFactory)); } if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _modelMetadataProvider = modelMetadataProvider; _modelBinderFactory = modelBinderFactory; _validatorProvider = validatorProvider; _validatorForBackCompatOnly = validatorForBackCompatOnly; _validatorCache = new ValidatorCache(); Logger = loggerFactory.CreateLogger(GetType()); }
private static BindingInfo[] GetPropertyBindingInfo( IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider, ControllerActionDescriptor actionDescriptor) { var properties = actionDescriptor.BoundProperties; if (properties.Count == 0) { return(null); } var propertyBindingInfo = new BindingInfo[properties.Count]; var controllerType = actionDescriptor.ControllerTypeInfo.AsType(); for (var i = 0; i < properties.Count; i++) { var property = properties[i]; var metadata = modelMetadataProvider.GetMetadataForProperty(controllerType, property.Name); var binder = modelBinderFactory.CreateBinder(new ModelBinderFactoryContext { BindingInfo = property.BindingInfo, Metadata = metadata, CacheToken = property, }); propertyBindingInfo[i] = new BindingInfo(binder, metadata); } return(propertyBindingInfo); }
private BinderItem[] GetParameterBindingInfo(IModelBinderFactory modelBinderFactory) { if (Parameters.Count == 0) { return(null); } var parameterBindingInfo = new BinderItem[Parameters.Count]; for (var i = 0; i < Parameters.Count; i++) { var parameter = Parameters[i]; var metadata = new ModelMetadata(parameter); var binder = modelBinderFactory.CreateBinder(new ModelBinderFactoryContext { BindingInfo = parameter.BindingInfo, Metadata = metadata, CacheToken = parameter }); parameterBindingInfo[i] = new BinderItem(binder, metadata); } return(parameterBindingInfo); }
private static BindingInfo[] GetParameterBindingInfo( IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider, ControllerActionDescriptor actionDescriptor) { var parameters = actionDescriptor.Parameters; if (parameters.Count == 0) { return(null); } var parameterBindingInfo = new BindingInfo[parameters.Count]; for (var i = 0; i < parameters.Count; i++) { var parameter = parameters[i]; var metadata = modelMetadataProvider.GetMetadataForType(parameter.ParameterType); var binder = modelBinderFactory.CreateBinder(new ModelBinderFactoryContext { BindingInfo = parameter.BindingInfo, Metadata = metadata, CacheToken = parameter, }); parameterBindingInfo[i] = new BindingInfo(binder, metadata); } return(parameterBindingInfo); }
/// <summary> /// Creates a new <see cref="FinerGrainedActionSelector"/>, which /// overrides <see cref="Microsoft.AspNetCore.Mvc.Internal.ActionSelector.SelectBestActions" />. /// </summary> /// <param name="actionDescriptorCollectionProvider"> /// The <see cref="T:Microsoft.AspNetCore.Mvc.Infrastructure.IActionDescriptorCollectionProvider" />. /// </param> /// <param name="actionConstraintCache">The <see cref="T:Microsoft.AspNetCore.Mvc.Internal.ActionConstraintCache" /> that /// providers a set of <see cref="T:Microsoft.AspNetCore.Mvc.ActionConstraints.IActionConstraint" /> instances.</param> /// <param name="mvcOptions"></param> /// <param name="loggerFactory">The <see cref="T:Microsoft.Extensions.Logging.ILoggerFactory" />.</param> /// <param name="parameterBinder"></param> /// <param name="modelBinderFactory"></param> /// <param name="modelMetadataProvider"></param> /// <remarks>The constructor parameters are passed up to the base constructor</remarks> public FinerGrainedActionSelector( IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, ActionConstraintCache actionConstraintCache, ParameterBinder parameterBinder, IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider, IOptions <MvcOptions> mvcOptions, ILoggerFactory loggerFactory) { if (parameterBinder == null) { throw new ArgumentNullException(nameof(parameterBinder)); } if (modelBinderFactory == null) { throw new ArgumentNullException(nameof(modelBinderFactory)); } if (modelMetadataProvider == null) { throw new ArgumentNullException(nameof(modelMetadataProvider)); } if (mvcOptions == null) { throw new ArgumentNullException(nameof(mvcOptions)); } this.actionDescriptorCollectionProvider = actionDescriptorCollectionProvider; this.actionConstraintCache = actionConstraintCache; logger = loggerFactory.CreateLogger <FinerGrainedActionSelector>(); actionDisambiguator = new ActionDisambiguatorForOverloadedMethods(modelBinderFactory, modelMetadataProvider, mvcOptions.Value, parameterBinder); }
public DataSourceModelBinder( IDataSourceFactory dataSourceFactory, IModelBinderFactory modelBinderFactory) { this.dataSourceFactory = dataSourceFactory; this.modelBinderFactory = modelBinderFactory; }
public BehaviorsModelBinder( IBehaviorsFactory behaviorsFactory, IModelBinderFactory modelBinderFactory) { this.behaviorsFactory = behaviorsFactory; this.modelBinderFactory = modelBinderFactory; }
private static BinderItem[] GetParameterBindingInfo( IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider, ControllerActionDescriptor actionDescriptor, MvcOptions mvcOptions) { var parameters = actionDescriptor.Parameters; if (parameters.Count == 0) { return(null); } var parameterBindingInfo = new BinderItem[parameters.Count]; for (var i = 0; i < parameters.Count; i++) { var parameter = parameters[i]; ModelMetadata metadata; if (mvcOptions.AllowValidatingTopLevelNodes && modelMetadataProvider is ModelMetadataProvider modelMetadataProviderBase && parameter is ControllerParameterDescriptor controllerParameterDescriptor) { // The default model metadata provider derives from ModelMetadataProvider // and can therefore supply information about attributes applied to parameters. metadata = modelMetadataProviderBase.GetMetadataForParameter(controllerParameterDescriptor.ParameterInfo); }
/// <summary> /// Updates the specified <paramref name="model"/> instance using the specified <paramref name="modelBinderFactory"/> /// and the specified <paramref name="valueProvider"/> and executes validation using the specified /// <paramref name="objectModelValidator"/>. /// </summary> /// <typeparam name="TModel">The type of the model object.</typeparam> /// <param name="model">The model instance to update and validate.</param> /// <param name="prefix">The prefix to use when looking up values in the <paramref name="valueProvider"/>. /// </param> /// <param name="actionContext">The <see cref="ActionContext"/> for the current executing request.</param> /// <param name="metadataProvider">The provider used for reading metadata for the model type.</param> /// <param name="modelBinderFactory">The <see cref="IModelBinderFactory"/> used for binding.</param> /// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param> /// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the /// bound values.</param> /// <param name="includeExpressions">Expression(s) which represent top level properties /// which need to be included for the current model.</param> /// <returns>A <see cref="Task"/> that on completion returns <c>true</c> if the update is successful</returns> public static Task <bool> TryUpdateModelAsync <TModel>( TModel model, string prefix, ActionContext actionContext, IModelMetadataProvider metadataProvider, IModelBinderFactory modelBinderFactory, IValueProvider valueProvider, IObjectModelValidator objectModelValidator, params Expression <Func <TModel, object> >[] includeExpressions) where TModel : class { if (includeExpressions == null) { throw new ArgumentNullException(nameof(includeExpressions)); } var expression = GetPropertyFilterExpression(includeExpressions); var propertyFilter = expression.Compile(); return(TryUpdateModelAsync( model, prefix, actionContext, metadataProvider, modelBinderFactory, valueProvider, objectModelValidator, propertyFilter)); }
/// <summary> /// Initializes a new instance of <see cref="ParameterBinder"/>. /// </summary> /// <param name="modelMetadataProvider">The <see cref="IModelMetadataProvider"/>.</param> /// <param name="modelBinderFactory">The <see cref="IModelBinderFactory"/>.</param> /// <param name="validator">The <see cref="IObjectModelValidator"/>.</param> /// <param name="loggerFactory">The <see cref="ILoggerFactory"/>.</param> public ParameterBinder( IModelMetadataProvider modelMetadataProvider, IModelBinderFactory modelBinderFactory, IObjectModelValidator validator, ILoggerFactory loggerFactory) { if (modelMetadataProvider == null) { throw new ArgumentNullException(nameof(modelMetadataProvider)); } if (modelBinderFactory == null) { throw new ArgumentNullException(nameof(modelBinderFactory)); } if (validator == null) { throw new ArgumentNullException(nameof(validator)); } if (loggerFactory == null) { throw new ArgumentNullException(nameof(loggerFactory)); } _modelMetadataProvider = modelMetadataProvider; _modelBinderFactory = modelBinderFactory; _objectModelValidator = validator; Logger = loggerFactory.CreateLogger(GetType()); }
public ParameterBinder( IModelMetadataProvider modelMetadataProvider, IModelBinderFactory modelBinderFactory, IObjectModelValidator validator) : this(modelMetadataProvider, modelBinderFactory, validator, NullLoggerFactory.Instance) { }
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, RazorProject razorProject, DiagnosticSource diagnosticSource, ILoggerFactory loggerFactory) { _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; _htmlHelperOptions = htmlHelperOptions.Value; _selector = selector; _razorProject = razorProject; _diagnosticSource = diagnosticSource; _logger = loggerFactory.CreateLogger <PageActionInvoker>(); }
public BodyAndOtherSourcesModelBinder(ILoggerFactory loggerFactory, IOptions <MvcOptions> options, IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider, ICompositeMetadataDetailsProvider detailsProvider) { _logger = loggerFactory.CreateLogger <BodyOrOtherSourcesModelBinder>(); _modelBinderFactory = modelBinderFactory; _modelMetadataProvider = modelMetadataProvider; _modelBindingMessageProvider = options.Value.ModelBindingMessageProvider; _detailsProvider = detailsProvider; }
public ModelService(IDatabaseProviderFactory databaseProviderFactory, IModelBinderFactory modelBinderFactory) { trackDao = new TrackDao(databaseProviderFactory, modelBinderFactory); fingerprintDao = new FingerprintDao(databaseProviderFactory, modelBinderFactory); hashBinMinHashDao = new HashBinMinHashDao(databaseProviderFactory, modelBinderFactory); subFingerprintDao = new SubFingerprintDao(databaseProviderFactory, modelBinderFactory); permutationsDao = new PermutationsDao(databaseProviderFactory, modelBinderFactory); }
/// <summary> /// Initializes a new instance of the <see cref="ODataActionSelector" /> class. /// </summary> /// <param name="innerSelector">The inner action selector.</param> /// <param name="modelBinderFactory">IModelBinderFactory instance from dependency injection</param> /// <param name="modelMetadataProvider">IModelMetadataProvider instance from dependency injection</param> public ODataActionSelector( IActionSelector innerSelector, IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider) { _innerSelector = innerSelector; _modelBinderFactory = modelBinderFactory; _modelMetadataProvider = modelMetadataProvider; }
public ConsumerInvokerFactory( ILoggerFactory loggerFactory, IModelBinderFactory modelBinderFactory, IServiceProvider serviceProvider) { _logger = loggerFactory.CreateLogger <ConsumerInvokerFactory>(); _modelBinderFactory = modelBinderFactory; _serviceProvider = serviceProvider; }
public DefaultControllerArgumentBinder( IModelMetadataProvider modelMetadataProvider, IModelBinderFactory modelBinderFactory, IObjectModelValidator validator) { _modelMetadataProvider = modelMetadataProvider; _modelBinderFactory = modelBinderFactory; _validator = validator; }
/// <summary> /// Updates the specified <paramref name="model"/> instance using the specified /// <paramref name="modelBinderFactory"/> and the specified <paramref name="valueProvider"/> and executes /// validation using the specified <paramref name="objectModelValidator"/>. /// </summary> /// <typeparam name="TModel">The type of the model object.</typeparam> /// <param name="model">The model instance to update and validate.</param> /// <param name="prefix">The prefix to use when looking up values in the <paramref name="valueProvider"/>. /// </param> /// <param name="actionContext">The <see cref="ActionContext"/> for the current executing request.</param> /// <param name="metadataProvider">The provider used for reading metadata for the model type.</param> /// <param name="modelBinderFactory">The <see cref="IModelBinderFactory"/> used for binding.</param> /// <param name="valueProvider">The <see cref="IValueProvider"/> used for looking up values.</param> /// <param name="objectModelValidator">The <see cref="IObjectModelValidator"/> used for validating the /// bound values.</param> /// <returns>A <see cref="Task"/> that on completion returns <c>true</c> if the update is successful</returns> public static Task <bool> TryUpdateModelAsync <TModel>( TModel model, string prefix, ActionContext actionContext, IModelMetadataProvider metadataProvider, IModelBinderFactory modelBinderFactory, IValueProvider valueProvider, IObjectModelValidator objectModelValidator) where TModel : class { if (model == null) { throw new ArgumentNullException(nameof(model)); } if (prefix == null) { throw new ArgumentNullException(nameof(prefix)); } if (actionContext == null) { throw new ArgumentNullException(nameof(actionContext)); } if (metadataProvider == null) { throw new ArgumentNullException(nameof(metadataProvider)); } if (modelBinderFactory == null) { throw new ArgumentNullException(nameof(modelBinderFactory)); } if (valueProvider == null) { throw new ArgumentNullException(nameof(valueProvider)); } if (objectModelValidator == null) { throw new ArgumentNullException(nameof(objectModelValidator)); } // Includes everything by default. return(TryUpdateModelAsync( model, prefix, actionContext, metadataProvider, modelBinderFactory, valueProvider, objectModelValidator, propertyFilter: (m) => true)); }
public DefaultConsumerInvoker(ILoggerFactory loggerFactory, IServiceProvider serviceProvider, IMessagePacker messagePacker, IModelBinderFactory modelBinderFactory) { _modelBinderFactory = modelBinderFactory; _serviceProvider = serviceProvider; _messagePacker = messagePacker; _logger = loggerFactory.CreateLogger <DefaultConsumerInvoker>(); }
public BodyOrOtherSourcesModelBinder(IHttpRequestStreamReaderFactory readerFactory, ILoggerFactory loggerFactory, IOptions <MvcOptions> options, IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider, ICompositeMetadataDetailsProvider detailsProvider) : base(options.Value.InputFormatters, readerFactory, loggerFactory, options.Value) { _logger = loggerFactory.CreateLogger <BodyOrOtherSourcesModelBinder>(); _modelBinderFactory = modelBinderFactory; _providers = options.Value.ModelBinderProviders.ToArray(); _modelMetadataProvider = modelMetadataProvider; _modelBindingMessageProvider = options.Value.ModelBindingMessageProvider; _detailsProvider = detailsProvider; }
public MyControllerActionInvokerCache( IActionDescriptorCollectionProvider collectionProvider, ParameterBinder parameterBinder, IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider, IEnumerable <IFilterProvider> filterProviders, IControllerFactoryProvider factoryProvider, IOptions <MvcOptions> mvcOptions) : base(collectionProvider, parameterBinder, modelBinderFactory, modelMetadataProvider, filterProviders, factoryProvider, mvcOptions) { }
public ConsumerInvokerFactory( ILoggerFactory loggerFactory, IMessagePacker messagePacker, IModelBinderFactory modelBinderFactory, IServiceProvider serviceProvider) { _loggerFactory = loggerFactory; _messagePacker = messagePacker; _modelBinderFactory = modelBinderFactory; _serviceProvider = serviceProvider; }
/// <summary> /// Initializes a new instance of <see cref="ParameterBinder"/>. /// </summary> /// <param name="modelMetadataProvider">The <see cref="IModelMetadataProvider"/>.</param> /// <param name="modelBinderFactory">The <see cref="IModelBinderFactory"/>.</param> /// <param name="validatorProvider">The <see cref="IModelValidatorProvider"/>.</param> public ParameterBinder( IModelMetadataProvider modelMetadataProvider, IModelBinderFactory modelBinderFactory, IModelValidatorProvider validatorProvider) : this(modelMetadataProvider, modelBinderFactory, validatorProvider, null) { if (validatorProvider == null) { throw new ArgumentNullException(nameof(validatorProvider)); } }
public MvcValueProvider(ActionContext actionContext) : base(actionContext.HttpContext) { ActionContext = actionContext; _Values = new Dictionary <string, object>(); _ModelBinderFactory = actionContext.HttpContext.RequestServices.GetRequiredService <IModelBinderFactory>(); _ModelMetadataProvider = actionContext.HttpContext.RequestServices.GetRequiredService <IModelMetadataProvider>(); ValueSelectors.Insert(0, new HttpRouteValueValueSelector(HttpContext)); ValueSelectors.Add(new HttpRouteDataTokenValueSelector(HttpContext)); }
public ParameterBinder( IModelMetadataProvider modelMetadataProvider, IModelBinderFactory modelBinderFactory, IModelValidatorProvider validatorProvider) : this( modelMetadataProvider, modelBinderFactory, validatorProvider, validatorForBackCompatOnly : null, loggerFactory : NullLoggerFactory.Instance) { }
/// <summary> /// Initializes a new instance of the <see cref="ODataActionSelector" /> class. /// </summary> /// <param name="actionDescriptorCollectionProvider">IActionDescriptorCollectionProvider instance from dependency injection.</param> /// <param name="actionConstraintProviders">ActionConstraintCache instance from dependency injection.</param> /// <param name="loggerFactory">ILoggerFactory instance from dependency injection.</param> /// <param name="modelBinderFactory">IModelBinderFactory instance from dependency injection</param> /// <param name="modelMetadataProvider">IModelMetadataProvider instance from dependency injection</param> public ODataActionSelector( IActionDescriptorCollectionProvider actionDescriptorCollectionProvider, ActionConstraintCache actionConstraintProviders, ILoggerFactory loggerFactory, IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider ) { _innerSelector = new ActionSelector(actionDescriptorCollectionProvider, actionConstraintProviders, loggerFactory); _modelBinderFactory = modelBinderFactory; _modelMetadataProvider = modelMetadataProvider; }
public ParameterBinder( IModelMetadataProvider modelMetadataProvider, IModelBinderFactory modelBinderFactory, IObjectModelValidator validator) : this( modelMetadataProvider, modelBinderFactory, validator, Options.Create(new MvcOptions()), NullLoggerFactory.Instance) { }
public ActionDisambiguatorForOverloadedMethods( IModelBinderFactory modelBinderFactory, IModelMetadataProvider modelMetadataProvider, MvcOptions mvcOptions, ParameterBinder parameterBinder, ScoreSignature scoreDelegate = null) { this.modelBinderFactory = modelBinderFactory; this.modelMetadataProvider = modelMetadataProvider; this.mvcOptions = mvcOptions; this.parameterBinder = parameterBinder; this.scoreDelegate = scoreDelegate ?? Score; }
public DefaultConsumerInvoker(ILogger logger, IServiceProvider serviceProvider, IModelBinderFactory modelBinderFactory, ConsumerContext consumerContext) { _modelBinderFactory = modelBinderFactory; _serviceProvider = serviceProvider; _logger = logger; _consumerContext = consumerContext; _executor = ObjectMethodExecutor.Create(_consumerContext.ConsumerDescriptor.MethodInfo, _consumerContext.ConsumerDescriptor.ImplTypeInfo); }
public DefaultConsumerInvoker(ILogger logger, IServiceProvider serviceProvider, IModelBinderFactory modelBinderFactory, ConsumerContext consumerContext) { _modelBinderFactory = modelBinderFactory; _serviceProvider = serviceProvider; _logger = logger ?? throw new ArgumentNullException(nameof(logger)); _consumerContext = consumerContext ?? throw new ArgumentNullException(nameof(consumerContext)); _executor = ObjectMethodExecutor.Create(_consumerContext.ConsumerDescriptor.MethodInfo, _consumerContext.ConsumerDescriptor.ImplTypeInfo); }
private static void TestCreateSimpleSection(IModelBinderFactory binderFactory) { var binder = binderFactory.Create(typeof (SimpleSection)); const string stringValue = "string value"; const int intValue = 1; var instance = new SimpleSection(); binder.Bind(instance, new Dictionary<string, object> { { "StrProp", stringValue }, { "IntProp", intValue } }); Assert.AreEqual(intValue, instance.IntProp); Assert.AreEqual(stringValue, instance.StrProp); }
public SanitationModelBinderFactory(IModelMetadataProvider metadataProvider, IOptions <MvcOptions> options, IServiceProvider serviceProvider) { var me = options.Value.ModelBinderProviders .FirstOrDefault(t => t.GetType() == typeof(SanitationModelBinderProvider)); if (me is not null) { options.Value.ModelBinderProviders.Remove(me); } _factory = new ModelBinderFactory(metadataProvider, options, serviceProvider); }
protected AbstractDao(IDatabaseProviderFactory databaseProvider, IModelBinderFactory modelBinderFactory) { this.databaseProvider = databaseProvider; this.modelBinderFactory = modelBinderFactory; }
public PermutationsDao(IDatabaseProviderFactory databaseProvider, IModelBinderFactory modelBinderFactory) : base(databaseProvider, modelBinderFactory) { }
public SubFingerprintDao(IDatabaseProviderFactory databaseProvider, IModelBinderFactory modelBinderFactory) : base(databaseProvider, modelBinderFactory) { }
public TrackDao(IDatabaseProviderFactory databaseProvider, IModelBinderFactory modelBinderFactory) : base(databaseProvider, modelBinderFactory) { }
public HashBinDao(IDatabaseProviderFactory databaseProvider, IModelBinderFactory modelBinderFactory) : base(databaseProvider, modelBinderFactory) { // no op }