private static void DeleteOthers(DwgFileModel model, SQLiteConnection connection) { if (model != null) { using (SQLiteCommand command = connection.CreateCommand()) { //MUST DELETE CHILD FIRST. List <FixtureDetailsModel> fixtures = DBFixtureDetails.SelectRows(connection, model.relativePath); List <FixtureBeingUsedAreaModel> areas = DBFixtureBeingUsedArea.SelectRows(connection, model.relativePath); List <InsertPointModel> insertPoints = DBInsertPoint.SelectRows(connection, model.relativePath); List <TableModel> tables = DBTable.SelectRows(connection, model.relativePath); List <AreaBorderModel> areaU = DBAreaBorder.SelectRows(connection, model.relativePath); List <FixtureUnitModel> units = DBFixture_Unit.SelectRows(connection, model.relativePath); foreach (FixtureDetailsModel fixture in fixtures) { DBFixtureDetails.DeleteRow(connection, fixture.ID); } foreach (FixtureBeingUsedAreaModel area in areas) { DBFixtureBeingUsedArea.DeleteRow(connection, area.ID); } foreach (InsertPointModel insertPoint in insertPoints) { DBInsertPoint.DeleteRow(connection, insertPoint.ID); } foreach (TableModel table in tables) { DBTable.DeleteRow(connection, table.ID); } foreach (AreaBorderModel m in areaU) { DBTable.DeleteRow(connection, m.ID); } foreach (FixtureUnitModel m in units) { DBTable.DeleteRow(connection, m.ID); } DBCommand.DeleteRow(DBDwgFileName.name, model.ID, command); long check = command.ExecuteNonQuery(); } } }
public static void InitTable(string databasePath) { SQLiteConnection sqliteConn = new SQLiteConnection(DBCommand.GetConnectionString(databasePath)); try { sqliteConn.Open(); SQLiteTransaction sqliteTrans = sqliteConn.BeginTransaction(); DBMatrix3d.CreateTable(sqliteConn); DBPoint3D.CreateTable(sqliteConn); DBInsertPoint.CreateTable(sqliteConn); DBFixtureDetails.CreateTable(sqliteConn); DBFixtureBeingUsedArea.CreateTable(sqliteConn); DBDwgFile.CreateTable(sqliteConn); DBTable.CreateTable(sqliteConn); DBFixture_Unit.CreateTable(sqliteConn); DBAreaBorder.CreateTable(sqliteConn); if (projectElement.P_NOTE != null) { projectElement.P_NOTE.WriteToDatabase(sqliteConn); } if (projectElement.Dwgs != null) { foreach (DwgFileModel model in projectElement.Dwgs) { model.WriteToDatabase(sqliteConn); } } sqliteTrans.Commit(); sqliteTrans.Dispose(); sqliteConn.Close(); GC.Collect(); GC.WaitForPendingFinalizers(); } catch (Exception e) { DebugMessage(string.Format(@"Error opening Database: {0}, Error:{1}", databasePath, e.Message)); } }
/// <summary> /// Update Database, FILE MUST BE INITIATED. /// </summary> /// <param name="connection"></param> public void UpdateDatabase(SQLiteConnection connection) { List <FixtureBeingUsedAreaModel> handle1 = DBFixtureBeingUsedArea.SelectRows(connection, file.ID); List <FixtureDetailsModel> handle2 = DBFixtureDetails.SelectRows(connection, file.ID); List <InsertPointModel> handle3 = DBInsertPoint.SelectRows(connection, file.ID); List <FixtureUnitModel> handle4 = DBFixture_Unit.SelectRows(connection, file.ID); List <AreaBorderModel> handle5 = DBAreaBorder.SelectRows(connection, file.ID); List <string> toDelete1 = HandleToDelete(handle1, FixtureBoxSet).ToList(); List <string> toDelete2 = HandleToDelete(handle2, FixtureDetailSet).ToList(); List <string> toDelete3 = HandleToDelete(handle3, InsertPointSet).ToList(); List <string> toDelete4 = HandleToDelete(handle4, FixtureUnitsSet).ToList(); List <string> toDelete5 = HandleToDelete(handle5, AreaModelSet).ToList(); foreach (string handle in toDelete1) { DBFixtureBeingUsedArea.DeleteRow(connection, handle, file.ID); } foreach (string handle in toDelete2) { DBFixtureDetails.DeleteRow(connection, handle, file.ID); } foreach (string handle in toDelete3) { DBInsertPoint.DeleteRow(connection, handle, file.ID); } foreach (string handle in toDelete4) { DBFixture_Unit.DeleteRow(connection, handle, file.ID); } foreach (string handle in toDelete5) { DBAreaBorder.DeleteRow(connection, handle, file.ID); } WriteToDataBase(connection); }
public void WriteToDabase(SQLiteConnection connection) { if (!DBFixture_Unit.HasRow(connection, handle, file.ID)) { var temp = this; WriteToDatabase0(connection); if (tagPos != null) { tagPos.WriteToDatabase(connection); } if (ventPos != null) { ventPos.WriteToDatabase(connection); } if (drainPos != null) { drainPos.WriteToDatabase(connection); } if (hotStub != null) { hotStub.WriteToDatabase(connection); } if (coldStub != null) { coldStub.WriteToDatabase(connection); } if (R1 != null) { R1.WriteToDatabase(connection); } if (V != null) { V.WriteToDatabase(connection); } //Tag can never be null M.WriteToDatabase(connection); ID = DBFixture_Unit.InsertRow(connection, ref temp); } else { FixtureUnitModel model = DBFixture_Unit.SelectRow(connection, handle, file.ID); ID = model.ID; UpdateToDatabase0(model.matrixTransform.ID, model.position.ID, connection); if (model.tagPos != null) { tagPos.ID = model.tagPos.ID; tagPos.WriteToDatabase(connection); } if (model.ventPos != null) { ventPos.ID = model.ventPos.ID; ventPos.WriteToDatabase(connection); } if (model.drainPos != null) { drainPos.ID = model.drainPos.ID; drainPos.WriteToDatabase(connection); } if (model.hotStub != null) { hotStub.ID = model.hotStub.ID; hotStub.WriteToDatabase(connection); } if (model.coldStub != null) { coldStub.ID = model.coldStub.ID; coldStub.WriteToDatabase(connection); } if (model.R1 != null) { R1.ID = model.R1.ID; R1.WriteToDatabase(connection); } if (model.V != null) { V.ID = model.V.ID; V.WriteToDatabase(connection); } M.ID = model.M.ID; M.WriteToDatabase(connection); DBFixture_Unit.UpdateRow(connection, this); } }