Example #1
0
        public Dictionary <long, ContentSchema> GetContentSchemas(IList <CardMetadata> metadata)
        {
            var contentSchemas = new Dictionary <long, ContentSchema>();

            Prepare(
                "SELECT SCHEMA FROM content_schema " +
                "WHERE ID = @1;"
                );

            for (int i = 0; i < metadata.Count; ++i)
            {
                if (!contentSchemas.ContainsKey(metadata[i].SchemaId))
                {
                    SetParameters(metadata[i].SchemaId);

                    dataReader = command.ExecuteReader(CommandBehavior.SingleRow);
                    dataReader.Read();

                    ContentSchema schema = blobReader.BlobToContentSchema(dataReader.GetBytes(0));
                    contentSchemas.Add(metadata[i].SchemaId, schema);
                }
            }

            CommitRead();
            return(contentSchemas);
        }
Example #2
0
        public ContentSchema GetContentSchema(long id)
        {
            Prepare(
                "SELECT SCHEMA FROM content_schema WHERE ID = @1;"
                );

            SetParameters(id);
            dataReader = command.ExecuteReader(CommandBehavior.SingleRow);
            dataReader.Read();

            ContentSchema contentSchema = blobReader.BlobToContentSchema(dataReader.GetBytes(0));

            CommitRead();
            return(contentSchema);
        }
Example #3
0
        public long InsertContentSchema(ContentSchema contentSchema)
        {
            Prepare(
                "INSERT INTO content_schema(ID, SCHEMA)" +
                "VALUES(@1, @2);"
                );

            long id = GetUniqueIdFromTable("content_schema");

            SetParameters(
                id,
                blobCreator.Create(contentSchema)
                );

            CommitWrite();
            return(id);
        }
Example #4
0
        private byte[] ContentSchemaToBlob(ContentSchema contentSchema)
        {
            Prepare();

            binaryWriter.Write(contentSchema.Name);
            binaryWriter.Write(contentSchema.Fields.Count);
            ContentField contentField;

            for (int i = 0; i < contentSchema.Fields.Count; ++i)
            {
                contentField = contentSchema.Fields[i];
                binaryWriter.Write(contentField.Name);
                binaryWriter.Write((byte)contentField.ContentFieldType);
            }

            byte[] bytes = memoryStream.ToArray();
            Dispose();
            return(bytes);
        }
Example #5
0
        public ContentSchema BlobToContentSchema(byte[] blob)
        {
            Prepare(blob);
            ContentSchema contentSchema = new ContentSchema();

            contentSchema.Name = binaryReader.ReadString();
            int numberFields = binaryReader.ReadInt32();

            for (int i = 0; i < numberFields; ++i)
            {
                contentSchema.Fields.Add(new ContentField()
                {
                    Name             = binaryReader.ReadString(),
                    ContentFieldType = (ContentFieldType)binaryReader.ReadByte()
                });
            }

            Dispose();
            return(contentSchema);
        }