public CommandResult Excute(object pipelineInput, Dictionary <string, string> data, string[] args) { var connectionString = args[0]; var tableName = args[1]; var repository = new MetaRepository(connectionString); var tables = repository.GetTableInfo(); var tableExists = tables.Exists(t => t.TableName == tableName); using (var connection = new SqlConnection(connectionString)) { connection.Open(); if (!tableExists) { var createSql = $@"CREATE TABLE [dbo].[{tableName}]( [id] [int] PRIMARY KEY IDENTITY(1, 1) NOT NULL, [title] [nvarchar](255) NULL, [content] [text] NULL, [tag] [nvarchar](50) NULL, [source] [nvarchar](25) NULL, [publish] [bit] default(0) NOT NULL)" ; connection.Execute(createSql); } var removeItems = new List <Dictionary <string, string> >(); foreach (var item in ResultCommand.Rows) { removeItems.Add(item); string cloumnStr = ""; string paramStr = ""; var sqlParm = new DynamicParameters(); foreach (var cloumn in item) { cloumnStr += $"[{cloumn.Key}],"; paramStr += $"@{cloumn.Key},"; sqlParm.Add(cloumn.Key, cloumn.Value); } cloumnStr = cloumnStr.TrimEnd(','); paramStr = paramStr.TrimEnd(','); var sql = $"DELETE [{tableName}] WHERE title=@title and source=@source;INSERT INTO [{tableName}] ({cloumnStr}) VALUES ({paramStr})"; connection.Execute(sql, sqlParm); } ResultCommand.Rows.RemoveAll(i => removeItems.Contains(i)); } return(new CommandResult() { Success = true }); }
public void TestMetaRespository() { string connectionString = @""; var repo = new MetaRepository(connectionString: connectionString); var tables = repo.GetTableInfo(); var sprocs = repo.GetStoredProcedureInfo().Where(s=>!s.Name.Contains("diagram")); dynamic display = new ExpandoObject(); display.Tables = tables; display.Sprocs = sprocs; var jsonString = JsonConvert.SerializeObject(display, Formatting.Indented); File.WriteAllText("Shabang.txt", jsonString); }
public void TestMetaRespository() { string connectionString = @""; var repo = new MetaRepository(connectionString: connectionString); var tables = repo.GetTableInfo(); var sprocs = repo.GetStoredProcedureInfo().Where(s => !s.Name.Contains("diagram")); dynamic display = new ExpandoObject(); display.Tables = tables; display.Sprocs = sprocs; var jsonString = JsonConvert.SerializeObject(display, Formatting.Indented); File.WriteAllText("Shabang.txt", jsonString); }