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(); }
public InputActionContainer(EnumLookupTable <TEnum, InputAction> actionConfig) { actionConfigCleanLookup = actionConfig; }