public static ModelBindingTestContext GetTestContext( Action <HttpRequest> updateRequest = null, Action <MvcOptions> updateOptions = null, ControllerActionDescriptor actionDescriptor = null, IModelMetadataProvider metadataProvider = null, MvcOptions mvcOptions = null) { var httpContext = GetHttpContext(metadataProvider, updateRequest, updateOptions, mvcOptions); var services = httpContext.RequestServices; metadataProvider = metadataProvider ?? services.GetRequiredService <IModelMetadataProvider>(); var options = services.GetRequiredService <IOptions <MvcOptions> >(); var context = new ModelBindingTestContext { ActionDescriptor = actionDescriptor ?? new ControllerActionDescriptor(), HttpContext = httpContext, MetadataProvider = metadataProvider, MvcOptions = options.Value, RouteData = new RouteData(), ValueProviderFactories = new List <IValueProviderFactory>(options.Value.ValueProviderFactories), }; return(context); }
public static ModelBindingTestContext GetTestContext( Action <HttpRequest> updateRequest = null, Action <MvcOptions> updateOptions = null, ControllerActionDescriptor actionDescriptor = null) { var httpContext = GetHttpContext(updateRequest, updateOptions); var services = httpContext.RequestServices; var context = new ModelBindingTestContext() { ActionDescriptor = actionDescriptor ?? new ControllerActionDescriptor(), HttpContext = httpContext, MetadataProvider = TestModelMetadataProvider.CreateDefaultProvider(), RouteData = new RouteData(), }; var options = services.GetRequiredService <IOptions <MvcOptions> >(); var valueProviderFactoryContext = new ValueProviderFactoryContext(context); foreach (var factory in options.Value.ValueProviderFactories) { factory.CreateValueProviderAsync(valueProviderFactoryContext).GetAwaiter().GetResult(); } context.ValueProviders = valueProviderFactoryContext.ValueProviders; return(context); }
private Task <bool> TryUpdateModel( object model, string prefix, ModelBindingTestContext testContext) { return(ModelBindingHelper.TryUpdateModelAsync( model, model.GetType(), prefix, testContext, testContext.MetadataProvider, TestModelBinderFactory.CreateDefault(), new CompositeValueProvider(testContext.ValueProviders), ModelBindingTestHelper.GetObjectValidator(testContext.MetadataProvider))); }
private async Task <bool> TryUpdateModelAsync( object model, string prefix, ModelBindingTestContext testContext) { var valueProvider = await CompositeValueProvider.CreateAsync(testContext); return(await ModelBindingHelper.TryUpdateModelAsync( model, model.GetType(), prefix, testContext, testContext.MetadataProvider, TestModelBinderFactory.CreateDefault(), valueProvider, ModelBindingTestHelper.GetObjectValidator(testContext.MetadataProvider))); }
public static ParameterBinder GetParameterBinder(ModelBindingTestContext testContext) { return(GetParameterBinder(testContext.HttpContext.RequestServices)); }