コード例 #1
0
        private static string AddSqlEngineVersionSpecificProperties(SqlEngineVersionSpecificProperties sqlEngineVersionSpecificProperties)
        {
            // new[] {
            //    new SqlEngineVersionSpecificProperty(MsSqlVersion.MsSql2016, "Nocheck", "true"),
            //    new SqlEngineVersionSpecificProperty(MsSqlVersion.MsSql2016, "Nocheck", "true")
            // }

            var sb = new StringBuilder();

            if (sqlEngineVersionSpecificProperties.Any())
            {
                sb.Append(", ");
                if (sqlEngineVersionSpecificProperties.Count() == 1)
                {
                    var sqlEngineVersionSpecificProperty = sqlEngineVersionSpecificProperties.First();
                    sb.Append(AddSqlEngineVersionSpecificProperty(sqlEngineVersionSpecificProperty));
                }
                else
                {
                    sb.Append("new[] {");
                    foreach (var sqlEngineVersionSpecificProperty in sqlEngineVersionSpecificProperties)
                    {
                        sb.Append(AddSqlEngineVersionSpecificProperty(sqlEngineVersionSpecificProperty));
                    }

                    sb.Append('}');
                }
            }

            return(sb.ToString());
        }
コード例 #2
0
        public static List <SqlEngineVersionSpecificPropertyMigration> CompareSqlEngineVersionSpecificPropertyChange(SqlEngineVersionSpecificProperties propertiesOriginal, SqlEngineVersionSpecificProperties propertiesNew)
        {
            var changes = new List <SqlEngineVersionSpecificPropertyMigration>();

            foreach (var propertyOriginal in propertiesOriginal)
            {
                var propertyNew = propertiesNew.FirstOrDefault(p => p.Version == propertyOriginal.Version && p.Name == propertyOriginal.Name);
                if (propertyNew == null)
                {
                    changes.Add(new SqlEngineVersionSpecificPropertyDelete()
                    {
                        SqlEngineVersionSpecificProperty = propertyOriginal
                    });
                }
            }

            foreach (var propertyNew in propertiesNew)
            {
                var propertyOriginal = propertiesOriginal.FirstOrDefault(p => p.Version == propertyNew.Version && p.Name == propertyNew.Name);
                if (propertyOriginal == null)
                {
                    changes.Add(new SqlEngineVersionSpecificPropertyNew()
                    {
                        SqlEngineVersionSpecificProperty = propertyOriginal
                    });
                }
                else if (propertyNew.Value != propertyOriginal.Value)
                {
                    changes.Add(new SqlEngineVersionSpecificPropertyChange()
                    {
                        SqlEngineVersionSpecificProperty    = propertyOriginal,
                        NewSqlEngineVersionSpecificProperty = propertyNew
                    });
                }
            }

            return(changes);
        }