public async Task BindModelAsync(ModelBindingContext bindingContext) { if (bindingContext == null) { throw new ArgumentNullException(nameof(bindingContext)); } var jsonString = await ReadBodyAsString(bindingContext); var json = JObject.Parse(jsonString); var customEntityDefinitionCodeProperty = json.GetValue("CustomEntityDefinitionCode", StringComparison.OrdinalIgnoreCase); var dataModelConverter = GetDataTypeConverter(customEntityDefinitionCodeProperty?.Value <string>()); if (dataModelConverter == null) { dataModelConverter = new NullModelJsonConverter <ICustomEntityDataModel>(); } var result = JsonConvert.DeserializeObject(jsonString, bindingContext.ModelType, dataModelConverter); bindingContext.Result = ModelBindingResult.Success(result); }
public async Task BindModelAsync(ModelBindingContext bindingContext) { if (bindingContext == null) { throw new ArgumentNullException(nameof(bindingContext)); } var jsonString = await ReadBodyAsString(bindingContext); var json = JObject.Parse(jsonString); var pageBlockTypeIdProperty = json.GetValue("PageBlockTypeId", StringComparison.OrdinalIgnoreCase); var dataModelConverter = await GetBlockDataTypeConverterAsync(pageBlockTypeIdProperty?.Value <int>()); if (dataModelConverter == null) { dataModelConverter = new NullModelJsonConverter <IPageBlockTypeDataModel>(); } var result = JsonConvert.DeserializeObject(jsonString, bindingContext.ModelType, dataModelConverter); bindingContext.Result = ModelBindingResult.Success(result); }