public TEntity AsModel <TEntity>(params ICondition <TEntity>[] conditions) where TEntity : new() { return(SafeExec(() => { IModelBinder <TEntity> modelBinder = modelBinderFactory.Create(conditions); var reader = ExecuteReader(); if (reader.Read()) { TEntity entity = modelBinder.BindReader(reader); return entity; } return default(TEntity); })); }
public IParameterBinder WithParametersFromModel <TModel>(TModel model, params ICondition <TModel>[] conditions) where TModel : new() { IModelBinder <TModel> modelBinder = modelBinderFactory.Create(conditions); modelBinder.BindWriter(model, this); return(this); }
public IModelBinder <TModel> Create <TModel>(params ICondition <TModel>[] conditions) where TModel : new() { if (cache.ContainsKey(typeof(TModel).FullName)) { return((IModelBinder <TModel>)cache[typeof(TModel).FullName]); } var modelBinder = modelBinderFactory.Create(conditions); cache[typeof(TModel).FullName] = modelBinder; return(modelBinder); }
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); }