private string PopulateTable(EnumLookupTable lookupTable)
            {
                var sql = new StringBuilder();

                foreach (var row in lookupTable.Rows.OrderBy(x => x.Id))
                {
                    sql.AppendFormat("INSERT INTO #lookups (Id, Name) VALUES ({0}, N'{1}');\r\n", row.Id, SanitizeSqlString(row.Name));
                }

                sql.AppendLine(string.Format(@"
MERGE INTO [{0}].[{1}] dst
	USING #lookups src ON src.Id = dst.Id
	WHEN MATCHED AND src.Name <> dst.Name THEN
		UPDATE SET Name = src.Name
	WHEN NOT MATCHED THEN
		INSERT (Id, Name)
		VALUES (src.Id, src.Name)
	WHEN NOT MATCHED BY SOURCE THEN
		DELETE
;"
                                             , _lookupTableSchema, lookupTable.Name));

                sql.AppendLine("TRUNCATE TABLE #lookups;");
                return(sql.ToString());
            }
            private void AddReference(Dictionary <string, EnumLookupTable> enumSet, EnumType enumType, TableReference reference)
            {
                EnumLookupTable entry;

                if (enumSet.TryGetValue(enumType.FullName, out entry))
                {
                    entry.References.Add(reference);
                }
                else
                {
                    var enumInfo = new EnumLookupTable(enumType, reference);
                    enumSet.Add(enumType.FullName, enumInfo);
                }
            }
 private void AddReference(Dictionary<string, EnumLookupTable> enumSet, EnumType enumType, TableReference reference)
 {
    EnumLookupTable entry;
    if (enumSet.TryGetValue(enumType.FullName, out entry))
    {
       entry.References.Add(reference);
    } else
    {
       var enumInfo = new EnumLookupTable(enumType, reference);
       enumSet.Add(enumType.FullName, enumInfo);
    }
 }
         private string PopulateTable(EnumLookupTable lookupTable)
         {
            var sql = new StringBuilder();
            foreach (var row in lookupTable.Rows.OrderBy(x => x.Id))
            {
               sql.AppendFormat("INSERT INTO #lookups (Id, Name) VALUES ({0}, N'{1}');\r\n", row.Id, SanitizeSqlString(row.Name));
            }

            sql.AppendLine(string.Format(@"
MERGE INTO [{0}].[{1}] dst
	USING #lookups src ON src.Id = dst.Id
	WHEN MATCHED AND src.Name <> dst.Name THEN
		UPDATE SET Name = src.Name
	WHEN NOT MATCHED THEN
		INSERT (Id, Name)
		VALUES (src.Id, src.Name)
	WHEN NOT MATCHED BY SOURCE THEN
		DELETE
;"
               , _lookupTableSchema, lookupTable.Name));

            sql.AppendLine("TRUNCATE TABLE #lookups;");
            return sql.ToString();
         }
예제 #5
0
 public InputActionContainer(EnumLookupTable <TEnum, InputAction> actionConfig)
 {
     actionConfigCleanLookup = actionConfig;
 }