public string TestGenerateScript(string insertRow, IEnumerable<string> primaryColumns) { var row = DataDescFactory.CreateRowDescriptor<InsertRowDesc>(insertRow, primaryColumns); Assert.AreEqual(insertRow, row.OriginalRow); var gen = new RowScriptGen(); var script = gen.GenerateMergeScript(row); Trace.WriteLine(script); return script; }
public string TestGenerateUnitedScript(IEnumerable<string> insertRows, string[] primaryColumns) { var rows = new List<InsertRowDesc>(); foreach (var row in insertRows) { rows.Add(DataDescFactory.CreateRowDescriptor<InsertRowDesc>(row, primaryColumns)); } var gen = new RowScriptGen(); var script = gen.GenerateMergeScript(rows, united:true); Trace.WriteLine(script); return script; }
public void Append(TableDataDesc table) { var rows = new List<RowDesc>(); foreach(var scriptedRow in table.ScriptedData) { var row = DataDescFactory.CreateRowDescriptor(scriptedRow, table.PrimaryColumns); rows.Add(row); } var gen = new RowScriptGen(); //Header var header = rows.TakeWhile(r => false == r is InsertRowDesc); //_sb.Append(gen.GenerateScript(header)); _sb.AppendFormat("{0}{1}", gen.GenerateScript(header), Environment.NewLine); //Data var data = rows.Where(r => r is InsertRowDesc).Select(r => r as InsertRowDesc); _sb.AppendFormat("{0}{1}", gen.GenerateMergeScript(data, true), Environment.NewLine); //Footer var footer = rows.Skip(header.Count() + data.Count()); _sb.AppendFormat("{0}{1}", gen.GenerateScript(footer), Environment.NewLine); }