public List <CommandResult> SYNC_SCAFFOLD(IConnectToDB _Connect, string Name, string ScaffoldType, List <ColumnStructure> ColumnsList, bool useIdentityUUID = false, string RootColumn = "", bool sync = false) { List <CommandResult> HoldResult = new List <CommandResult>(); ER_DDL er_ddl = new ER_DDL(); ER_Generate gen = new ER_Generate(); HoldResult.Add(new CommandResult { _Response = "--Start Scaffold " + Name + "", _Successful = true }); List <string> ColumnsList2 = new List <string>(); ColumnsList2.Add(Name + "_ID"); HoldResult.AddRange(ER_DDL._ADD_TABLE(_Connect, Name, ScaffoldType, useIdentityUUID, RootColumn)); bool tableAlreadyExists = (HoldResult.Exists(x => x._CommandName == "Create Table " + Name && !x._Successful)); if (tableAlreadyExists && sync == false) { HoldResult.Add(new CommandResult { _Response = Name + " was already created successfully during installation", _Successful = true }); } else { HoldResult.AddRange(er_ddl.ADD_COLUMNS(_Connect, Name, ColumnsList)); if (tableAlreadyExists == false) { HoldResult.AddRange(er_ddl.ADD_KEY_UNIQUE(_Connect, Name + "_ID", Name, ColumnsList2)); } if (useIdentityUUID || true) { List <string> ColumnsListUUID = new List <string>(); if (tableAlreadyExists == false) { ColumnsListUUID.Add(Name + "_UUID"); HoldResult.AddRange(er_ddl.ADD_KEY_UNIQUE(_Connect, Name + "_UUID", Name, ColumnsListUUID)); } } if (tableAlreadyExists && sync) { HoldResult.AddRange(er_ddl.DROP_PROCEDURE(_Connect, "SP_I_" + Name + "")); HoldResult.AddRange(er_ddl.DROP_PROCEDURE(_Connect, "SP_U_" + Name + "")); HoldResult.AddRange(er_ddl.DROP_PROCEDURE(_Connect, "SP_D_" + Name + "")); HoldResult.AddRange(er_ddl.DROP_PROCEDURE(_Connect, "SP_U_MOD_" + Name + "")); HoldResult.AddRange(er_ddl.DROP_PROCEDURE(_Connect, "SP_S_" + Name + "_SEARCH")); } HoldResult.AddRange(gen.ADD_PROCEDURE_INSERT(_Connect, Name, "")); HoldResult.AddRange(ER_Generate.CreateProcedureSearchProcedure(_Connect, "Eminent IT", _Connect.Schema, "", "", new List <CommandResult>(), selectStruct: new SearchProcedureStruct { ProcedurePrefix = "SP_S", GetLatestVersion = true, ProcedureName = Name + "_SEARCH", SourceName = Name })); HoldResult.AddRange(gen.Generate_Update_Procedure_For_Source(_Connect, Name)); HoldResult.AddRange(gen.ADD_PROCEDURE_UPDATE(_Connect, Name, "")); HoldResult.AddRange(gen.ADD_PROCEDURE_DELETE(_Connect, Name, "")); } HoldResult.Add(new CommandResult { _Response = "--EndScaffold " + Name + "", _Successful = true }); return(HoldResult); }