public List <Record> GetAllRecords(SymbolTableEnum table) { List <Record> recs = new List <Record>(); var stId = GetSymbolTable(table); if (stId.IsNull) { return(recs); } using (var t = db.TransactionManager.StartTransaction()) { var st = stId.GetObject(OpenMode.ForRead) as SymbolTable; foreach (var item in st) { var stRec = item.GetObject(OpenMode.ForRead) as SymbolTableRecord; if (!stRec.IsDependent) { Record rec = new Record(stRec.Name); recs.Add(rec); } } t.Commit(); } return(recs); }
public ObjectId GetSymbolTable(SymbolTableEnum table) { switch (table) { case SymbolTableEnum.Blocks: return(db.BlockTableId); case SymbolTableEnum.Layers: return(db.LayerTableId); default: throw new Exception($"Символьная таблица не определена - {table}"); } }
public void RenameRecords(List <Record> renamedRecords, SymbolTableEnum table) { if (renamedRecords.Count == 0) { return; } using (var t = db.TransactionManager.StartTransaction()) { var stId = GetSymbolTable(table); var st = stId.GetObject(OpenMode.ForRead) as SymbolTable; foreach (var item in renamedRecords) { item.Error = string.Empty; string tableName = st.GetRXClass().Name; if (st.Has(item.Name)) { if (st.Has(item.Rename)) { item.Error = $"Переименованное имя уже есть в таблице"; } else { if (IsValidName(item.Rename)) { var rec = st[item.Name].GetObject(OpenMode.ForWrite) as SymbolTableRecord; rec.Name = item.Rename; } else { item.Error = $"Недопустимое имя"; } } } else { item.Error = $"Записи с таким именем нет в таблице"; } } t.Commit(); } }