Beispiel #1
0
        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);
        }