private List <LayerState> ActivateLayers() { var layersToRevert = new List <LayerState>(); var layers = GetLayers(); if (layers.Count == 0) { return(layersToRevert); } //Need a transaction, not sure where else it could come from. using (var acTrans = AcCurDb.TransactionManager.StartTransaction()) { foreach (var layerObj in layers) { if (layerObj is LayerAttribute layerAttribute) { var layer = AcCurDb.GetLayer(layerAttribute.Name); if (layer == null) { // TODO: Redo this to use pull the correct name from the layer manager _log.LogError($"Layer {layerAttribute.Name} not found when attempting to save state."); continue; } var status = new LayerState(layer); if (status.IsInvalid) { layersToRevert.Add(status); if (ShouldUnlockUnfreeze || ShouldSwitchOn) { layer.UpgradeOpen(); if (ShouldUnlockUnfreeze) { layer.IsLocked = false; layer.IsFrozen = false; } if (ShouldSwitchOn) { layer.IsOff = false; } } } } } acTrans.Commit(); } return(layersToRevert); }
public void RegenerateManagers() { AcCurDb.DisableUndoRecording(true); foreach (IDrawingObjectManager drawingObjectManager in Managers) { drawingObjectManager.UpdateAll(); } AcCurDb.DisableUndoRecording(false); }
private void RevertLayers(IReadOnlyCollection <LayerState> layers) { if (layers.Count == 0) { return; } //Need a transaction, not sure where else it could come from. using (var acTrans = AcCurDb.TransactionManager.StartTransaction()) { foreach (var revert in layers) { var layer = AcCurDb.GetLayer(revert.Name); layer.UpgradeOpen(); layer.IsLocked = revert.IsLocked; layer.IsFrozen = revert.IsFrozen; layer.IsOff = revert.IsOff; } acTrans.Commit(); } }