public void GetMetadataSchema()
        {
            var cmd = new CommandGetMetadataSchema(Guid.NewGuid(), 1);

            cmd = (CommandGetMetadataSchema)(CtpCommand)cmd;
            Console.WriteLine(cmd.ToString());
        }
        //public void ProcessCommand(CommandGetMetadataAdvance command, WireEncoder encoder)
        //{
        //    var repository = m_repository;
        //    if (command.SequenceNumber.HasValue && command.SchemaVersion != repository.SchemaVersion)
        //    {
        //        encoder.MetadataVersionNotCompatible();
        //        return;
        //    }
        //    var engine = new MetadataQueryExecutionEngine(repository, encoder, command);
        //}

        public void ProcessCommand(CommandGetMetadataSchema command, CtpNetStream encoder)
        {
            var repository = m_repository;

            if (!command.LastKnownRuntimeID.HasValue || command.LastKnownRuntimeID != repository.RuntimeID)
            {
                encoder.Send(new CommandMetadataSchema(repository.RuntimeID, repository.VersionNumber, repository.MetadataSchema));
            }
            else if (command.LastKnownVersionNumber != repository.VersionNumber)
            {
                List <MetadataSchemaTableUpdate> tableRevisions = new List <MetadataSchemaTableUpdate>();
                foreach (var tables in repository.MetadataSchema)
                {
                    tableRevisions.Add(new MetadataSchemaTableUpdate(tables.TableName, tables.LastModifiedVersionNumber));
                }
                encoder.Send(new CommandMetadataSchemaUpdate(repository.RuntimeID, repository.VersionNumber, tableRevisions));
            }
            else
            {
                encoder.Send(new CommandMetadataSchemaVersion(repository.RuntimeID, repository.VersionNumber));
            }
        }
Example #3
0
        public void CommandGetMetadataSchema()
        {
            var cmd = new CommandGetMetadataSchema(Guid.NewGuid(), 382);

            Console.WriteLine(((CtpCommand)cmd).ToYAML());
        }