private IEnumerable <ISolutionUpgradeAction> GetSchemaUpgrades(SolutionMigrationOptions options, SolutionUpgradeContext context)
        {
            var upgradeActions = new List <ISolutionUpgradeAction>();

            // upgrades the compilation options section.
            var updateSdkVersion = new UpdateSdkVersion(options.SdkVersionNumber);

            upgradeActions.Add(updateSdkVersion);

            return(upgradeActions);
        }
        /// <summary>
        /// Migrates the solution.
        /// </summary>
        /// <param name="options">migration options.</param>
        /// <param name="additionalMigrations">any additional migrations to apply.</param>
        public void Apply(SolutionMigrationOptions options, IList <ISolutionUpgradeAction> additionalMigrations = null)
        {
            List <ISolutionUpgradeAction> migrations = new List <ISolutionUpgradeAction>();
            var context = this.Context;

            migrations.AddRange(GetSchemaUpgrades(options, context));


            // additional migrations to apply
            if (additionalMigrations != null && additionalMigrations.Any())
            {
                migrations.AddRange(additionalMigrations);
            }

            this.Apply(migrations);
        }