public void WriteToDatabase(SQLiteConnection connection) { var temp = this; WriteToDatabase0(connection); origin.WriteToDatabase(connection); pointBottom.WriteToDatabase(connection); pointTop.WriteToDatabase(connection); if (!DBAreaBorder.HasRow(connection, handle, file.ID)) { WriteToDatabase0(connection); origin.ID = DBPoint3D.InsertRow(ref origin, connection); pointTop.ID = DBPoint3D.InsertRow(ref pointTop, connection); pointBottom.ID = DBPoint3D.InsertRow(ref pointBottom, connection); } else { AreaBorderModel model = DBAreaBorder.SelectRow(connection, handle, file.ID); ID = model.ID; UpdateToDatabase0(model.matrixTransform.ID, model.position.ID, connection); origin.ID = model.ID; pointTop.ID = model.ID; pointBottom.ID = model.ID; DBPoint3D.UpdateRow(origin, connection); DBPoint3D.UpdateRow(pointTop, connection); DBPoint3D.UpdateRow(pointBottom, connection); DBAreaBorder.UpdateRow(connection, this); } }
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); }