private void Init(TcpClient socket, Stream stream)
        {
            _socket = socket;
            _stream = stream;
            ObjectSerializerFactory fact =
                ObjectSerializerFactory.GetInstance();

            _encoder = fact.NewBinarySerializer(_stream);
            _decoder = fact.NewBinaryDeserializer(_stream);
        }
        /// <summary>
        ///
        /// </summary>
        /// <returns></returns>
        public IEnumerator <T> GetEnumerator()
        {
            var result        = CqlQueryEvaluator.GetCql(Expression);
            var fluentObjects = _family.Context.ExecuteQuery(result);

            var serializer = ObjectSerializerFactory.Get(typeof(T));

            return(serializer
                   .Deserialize(fluentObjects)
                   .OfType <T>()
                   .GetEnumerator());
        }
Exemple #3
0
        public void BuildEntityMappingConfigurationXml()
        {
            EntityMappingConfiguration config = new EntityMappingConfiguration();

            EntityConfiguration entity = new EntityConfiguration();

            entity.Name      = "Post";
            entity.TableName = "post";
            entity.TypeName  = typeof(Post).AssemblyQualifiedName;

            PropertyConfiguration postIdProperty = new PropertyConfiguration();

            postIdProperty.Name              = "Id";
            postIdProperty.PropertyType      = typeof(int).FullName;
            postIdProperty.ColumnName        = "post_id";
            postIdProperty.IsPrimaryKey      = true;
            postIdProperty.IsAutoIdentity    = true;
            postIdProperty.IsRelationKey     = false;
            postIdProperty.RelatedForeignKey = string.Empty;
            postIdProperty.RelatedType       = string.Empty;

            PropertyConfiguration postTopicIdProperty = new PropertyConfiguration();

            postTopicIdProperty.Name              = "TopicId";
            postTopicIdProperty.PropertyType      = typeof(int).FullName;
            postTopicIdProperty.ColumnName        = "post_topic_id";
            postTopicIdProperty.IsPrimaryKey      = false;
            postTopicIdProperty.IsAutoIdentity    = false;
            postTopicIdProperty.IsRelationKey     = true;
            postTopicIdProperty.RelatedForeignKey = "topic_id";
            postTopicIdProperty.RelatedType       = typeof(Topic).FullName;

            PropertyConfiguration postAuthorIdProperty = new PropertyConfiguration();

            postAuthorIdProperty.Name              = "AuthorId";
            postAuthorIdProperty.PropertyType      = typeof(int).FullName;
            postAuthorIdProperty.ColumnName        = "post_author_id";
            postAuthorIdProperty.IsPrimaryKey      = false;
            postAuthorIdProperty.IsAutoIdentity    = false;
            postAuthorIdProperty.IsRelationKey     = true;
            postAuthorIdProperty.RelatedForeignKey = "user_id";
            postAuthorIdProperty.RelatedType       = typeof(User).FullName;

            PropertyConfiguration postContentProperty = new PropertyConfiguration();

            postContentProperty.Name           = "Content";
            postContentProperty.PropertyType   = typeof(string).FullName;
            postContentProperty.SqlType        = "nvarchar(max)";
            postContentProperty.ColumnName     = "post_content";
            postContentProperty.IsPrimaryKey   = false;
            postContentProperty.IsAutoIdentity = false;

            PropertyConfiguration postCreationDateTimeProperty = new PropertyConfiguration();

            postCreationDateTimeProperty.Name           = "CreationDateTime";
            postCreationDateTimeProperty.PropertyType   = typeof(DateTime).FullName;
            postCreationDateTimeProperty.ColumnName     = "post_creation_datetime";
            postCreationDateTimeProperty.IsPrimaryKey   = false;
            postCreationDateTimeProperty.IsAutoIdentity = false;

            entity.Properties = new PropertyConfiguration[] { postIdProperty, postTopicIdProperty, postAuthorIdProperty, postContentProperty, postCreationDateTimeProperty };

            config.Entities = new EntityConfiguration[] { entity };

            bool serialized = SerializationManager.Serialize(config, AppDomain.CurrentDomain.BaseDirectory + "EntityMappingConfig.xml");

            using (FileStream fs = new FileStream(AppDomain.CurrentDomain.BaseDirectory + "EntityMappingConfig.xml", FileMode.Open, FileAccess.Read))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    byte[] buffers = new byte[2048];

                    int position = fs.Read(buffers, 0, buffers.Length);

                    ms.Seek(0, SeekOrigin.Begin);
                    while (position > 0)
                    {
                        ms.Write(buffers, 0, position);

                        position = fs.Read(buffers, 0, buffers.Length);
                    }
                    ms.Flush();

                    EntityMappingConfiguration entityMappingConfig =
                        ObjectSerializerFactory.GetObjectSerializer("XML").Deserialize <EntityMappingConfiguration>(ms.ToArray());

                    Assert.AreEqual(config.Entities[0].Properties[0].SqlType, entityMappingConfig.Entities[0].Properties[0].SqlType);

                    Assert.AreEqual(config.Entities[0].Properties[2].PropertyType, entityMappingConfig.Entities[0].Properties[2].PropertyType);
                }
            }
        }