Beispiel #1
0
        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));
            }
        }
Beispiel #3
0
        /// <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);
            }
        }