public async Task BindModelAsync(ModelBindingContext bindingContext) { var valueProvider = new EncryptedPropertyDataValueProvider(bindingContext.ValueProvider, bindingContext.HttpContext.Resolve <IEncryptionService>()); using (bindingContext.HttpContext.Resolve <IProfiler>() .RecordStep($"{nameof(ModelBinderBase)}.{nameof(BindModelAsync)}")) { Logger.Trace(() => nameof(BindModelAsync)); await _Execute(bindingContext, valueProvider); } }
protected async Task <ModelBindingResult> _BindModel(ModelBindingContext bindingContext, Type modelType, EncryptedPropertyDataValueProvider valueProvider, IModelBinder innerBinder) { var innerModelBindingContext = DefaultModelBindingContext.CreateBindingContext( bindingContext.ActionContext, valueProvider, bindingContext.HttpContext.Resolve <IModelMetadataProvider>().GetMetadataForType(modelType), null, bindingContext.ModelName); await innerBinder.BindModelAsync(innerModelBindingContext); var modelBindingResult = innerModelBindingContext.Result; if (modelBindingResult == ModelBindingResult.Failed()) { Logger.Error(() => $"ModelBinder of {bindingContext.ModelName} failed"); } return(modelBindingResult); }
protected abstract Task _Execute(ModelBindingContext bindingContext, EncryptedPropertyDataValueProvider valueProvider);