Example #1
0
 public static T MapItem <T>(this IMapper <ReflectedEntityKey> mapper,
                             EntityFetchExpression fetchExpression,
                             IDataReader dataReader)
     where T : ClassEntity
 {
     return(mapper.MapItem <T>(ReflectedEntityKey.EntityKey <T>(), fetchExpression, dataReader));
 }
Example #2
0
 public static IEnumerable <T> MapItems <T>(this IMapper <ReflectedEntityKey> mapper,
                                            EntityFetchExpression fetchExpression,
                                            IDataReader dataReader)
     where T : ClassEntity
 {
     while (dataReader.Read())
     {
         yield return(mapper.MapItem <T>(fetchExpression, dataReader));
     }
 }
Example #3
0
        public T MapItem <T>(ReflectedEntityKey key, EntityFetchExpression fetchExpression, IDataReader dataReader)
            where T : IEntity
        {
            IEntityDefinition definition = _entityDefinitionProvider.GetEntityDefinition(key);
            T entity = (T)definition.GenerateEntity();
            IReadOnlyList <IFieldDefinition> fields = fetchExpression.Fields(_entityDefinitionProvider);

            for (var i = 0; i < fields.Count; i++)
            {
                ReflectionFieldDefinition fieldDefinition = (ReflectionFieldDefinition)fields[i];
                Field field          = fieldDefinition.GetField(entity);
                var   valueConverter = Converter(fieldDefinition);
                field.Value = valueConverter(dataReader.GetValue(i));
            }
            return(default(T));
        }
Example #4
0
        public void TestAllFieldsExpression()
        {
            List <IFieldDefinition> fieldsList = new List <IFieldDefinition>()
            {
                Mock.Of <IFieldDefinition>(),
                Mock.Of <IFieldDefinition>(),
                Mock.Of <IFieldDefinition>(),
                Mock.Of <IFieldDefinition>(),
            };
            IEntityKey entityKey           = new NamedKey("test");
            var        moqEntityDefinition = new Mock <IEntityDefinition>();

            moqEntityDefinition.SetupGet(definition => definition.FieldDefinitions).Returns(fieldsList);
            var moqEntityProvider = new Mock <IEntityDefinitionProvider>();

            moqEntityProvider.Setup(provider => provider.GetEntityDefinition(It.IsAny <IEntityKey>()))
            .Returns(moqEntityDefinition.Object);
            var fetchExpression = EntityFetchExpression.AllFieldsExpression(entityKey);

            Assert.AreSame(entityKey, fetchExpression.EntityKey);
            CollectionAssert.AreEqual(fieldsList, fetchExpression.Fields(moqEntityProvider.Object));
        }