public static void Run(IDatabaseSource src, IDatabaseSource dst, SynchronizeExtData extData)
        {
            if (!LicenseTool.FeatureAllowedMsg(DbStructSynchronizationFeature.Test))
            {
                return;
            }
            SynchronizeStructureForm win = new SynchronizeStructureForm(src, dst, extData);

            win.Show();
        }
            public override void RunCommand()
            {
                if (!LicenseTool.FeatureAllowedMsg(VersionedDbFeature.Test))
                {
                    Logging.Error("Database Versioning edition required");
                    return;
                }

                var vdb = new VersionDb(Vdb);

                var api    = new jsdm.Api();
                var create = new jsdm.CreateModelProps();

                api.Url          = String.Format("{0}?login={1}&password={2}", Url, Login, Password);
                create.Name      = Model;
                create.Dialect   = vdb.Dialect.DialectName;
                create.Versioned = true;
                string model = api.CreateModel(create);

                for (int i = 0; i < vdb.Versions.Count; i++)
                {
                    var ver = vdb.Versions[i];
                    using (var sr = new StreamReader(ver.GetFile()))
                    {
                        Logging.Info("Uploading version " + ver.Name);
                        string content = sr.ReadToEnd();
                        if (i > 0)
                        {
                            api.AddModelVersion(model, new Plugin.versiondb.jsdm.CreateVersionProps
                            {
                                Name    = ver.Name,
                                Ordinal = i + 1
                            });
                        }
                        api.ImportDbStructure(model, i + 1, content, true);
                    }
                }
                Logging.Info("Created mode with key " + model);
            }