示例#1
0
        /// <summary>
        /// Migrates preference settings, packages, custom node definitions, etc.
        /// from source migrator version to current version.
        /// This function can be overridden by version specific migrator classes
        /// </summary>
        /// <param name="sourceMigrator"> source migrator version from which to migrate from </param>
        /// /// <returns>new migrator instance after migration</returns>
        protected virtual DynamoMigratorBase MigrateFrom(DynamoMigratorBase sourceMigrator)
        {
            Copy(sourceMigrator.PackagesDirectory, PackagesDirectory);
            Copy(sourceMigrator.DefinitionsDirectory, DefinitionsDirectory);

            PreferenceSettings = sourceMigrator.PreferenceSettings;
            if (PreferenceSettings == null)
            {
                return(this);
            }

            // All preference settings are copied over including custom package folders
            // However if one of the custom folder locations points to the user data directory
            // of the previous version, it needs to be replaced with that of the current version
            var folders        = PreferenceSettings.CustomPackageFolders;
            var indexToReplace = folders.FindIndex(f => f.Contains(sourceMigrator.UserDataDirectory));

            if (indexToReplace <= -1)
            {
                return(this);
            }

            folders.RemoveAt(indexToReplace);
            folders.Insert(indexToReplace, UserDataDirectory);

            return(this);
        }
示例#2
0
        /// <summary>
        /// Migrates preference settings, packages, custom node definitions, etc.
        /// from source migrator version to current version.
        /// This function can be overridden by version specific migrator classes
        /// </summary>
        /// <param name="sourceMigrator"> source migrator version from which to migrate from </param>
        /// /// <returns>new migrator instance after migration</returns>
        protected virtual DynamoMigratorBase MigrateFrom(DynamoMigratorBase sourceMigrator)
        {
            Copy(sourceMigrator.PackagesDirectory, this.PackagesDirectory);
            Copy(sourceMigrator.DefinitionsDirectory, this.DefinitionsDirectory);

            this.PreferenceSettings = sourceMigrator.PreferenceSettings;
            return(this);
        }
示例#3
0
        /// <summary>
        /// Migrates preference settings, customized migration step in derived class.
        /// from source migrator version to current version.
        /// This function can be overridden by version specific migrator classes
        /// </summary>
        /// <param name="sourceMigrator"> source migrator version from which to migrate from </param>
        /// <returns>new migrator instance after migration</returns>
        protected virtual DynamoMigratorBase MigrateFrom(DynamoMigratorBase sourceMigrator)
        {
            PreferenceSettings = sourceMigrator.PreferenceSettings;
            if (PreferenceSettings == null)
            {
                return(this);
            }

            // All preference settings are copied over except for custom package folders
            PreferenceSettings.CustomPackageFolders.Clear();
            PreferenceSettings.CustomPackageFolders.Insert(0, UserDataDirectory);

            return(this);
        }
示例#4
0
        /// <summary>
        /// Migrates preference settings, customized migration step in derived class.
        /// from source migrator version to current version.
        /// This function can be overridden by version specific migrator classes
        /// </summary>
        /// <param name="sourceMigrator"> source migrator version from which to migrate from </param>
        /// <returns>new migrator instance after migration</returns>
        protected virtual DynamoMigratorBase MigrateFrom(DynamoMigratorBase sourceMigrator)
        {
            PreferenceSettings = sourceMigrator.PreferenceSettings;
            if (PreferenceSettings == null)
            {
                return(this);
            }

            // All preference settings are copied over except for custom package folders
            PreferenceSettings.CustomPackageFolders.Clear();
            PreferenceSettings.CustomPackageFolders.Insert(0, UserDataDirectory);
            // Also exclude SelectedPackagePathForInstall or it may point to previous
            // Dynamo version folders. When set to string.empty or null - will default to UserDataFolder.
            PreferenceSettings.SelectedPackagePathForInstall = string.Empty;

            return(this);
        }
示例#5
0
 protected override DynamoMigratorBase MigrateFrom(DynamoMigratorBase sourceMigrator)
 {
     return(base.MigrateFrom(sourceMigrator));
 }
示例#6
0
 protected override DynamoMigratorBase MigrateFrom(DynamoMigratorBase sourceMigrator)
 {
     // We should not be migrating from a previous version into Dynamo 0.7
     throw new NotImplementedException();
 }