private bool UpdateRasterImage(Document doc, ObjectId rasterId, string url, Point3d basePoint, Vector3d v1, Vector3d v2) { bool result; try { if (doc == null) { result = false; } else { if (doc.IsDisposed) { result = false; } else { if (rasterId.IsEffectivelyErased) { result = false; } else { if (rasterId == ObjectId.Null) { result = false; } else { Database arg_4D_0 = doc.Database; try { Editor arg_54_0 = doc.Editor; ; using (doc.LockDocument(DocumentLockMode.Write, null, null, false)) { doc.TransactionManager.EnableGraphicsFlush(true); Autodesk.AutoCAD.ApplicationServices.TransactionManager transactionManager = doc.TransactionManager; using (Transaction transaction = transactionManager.StartTransaction()) { RasterImage rasterImage = (RasterImage)transaction.GetObject(rasterId, OpenMode.ForWrite); rasterImage.DisableUndoRecording(true); ObjectId imageDefId = rasterImage.ImageDefId; RasterImageDef rasterImageDef = (RasterImageDef)transaction.GetObject(imageDefId, OpenMode.ForWrite); rasterImageDef.DisableUndoRecording(true); string sourceFileName = rasterImageDef.SourceFileName; try { rasterImageDef.Unload(true); rasterImageDef.SourceFileName = url; rasterImageDef.Load(); if (rasterImageDef.IsLoaded) { try { if (!string.IsNullOrEmpty(sourceFileName)) { System.IO.File.Delete(sourceFileName); } } catch { } } //rasterImage.Orientation = new CoordinateSystem3d(basePoint, v1, v2); rasterImage.Draw(); } catch (System.Exception ex) { System.Windows.Forms.MessageBox.Show(ex.ToString()); } try { rasterImageDef.UpdateEntities(); doc.TransactionManager.QueueForGraphicsFlush(); doc.TransactionManager.FlushGraphics(); doc.Editor.UpdateScreen(); } catch { } transaction.Commit(); } } result = true; } catch (System.Exception) { result = false; } } } } } } catch { result = false; } return(result); }
public bool DeleteService() { try { base.StopReactors(); base.StopReactors(); } catch { } Database database = base.ParentDataset.ParentDocument.Database; Document parentDocument = base.ParentDataset.ParentDocument; Editor editor = base.ParentDataset.ParentDocument.Editor; bool result; try { using (base.ParentDataset.ParentDocument.LockDocument((DocumentLockMode)20, null, null, false)) { using (Transaction transaction = parentDocument.TransactionManager.StartTransaction()) { RasterImage rasterImage = (RasterImage)transaction.GetObject(base.RasterObjectId, (OpenMode)1); rasterImage.DisableUndoRecording(true); ObjectId imageDefId = rasterImage.ImageDefId; RasterImageDef rasterImageDef = (RasterImageDef)transaction.GetObject(imageDefId, (OpenMode)1); rasterImageDef.DisableUndoRecording(true); if (rasterImageDef.IsLoaded) { rasterImageDef.Unload(true); } try { File.Delete(rasterImageDef.SourceFileName); if (App.TempFiles.Contains(rasterImageDef.SourceFileName)) { App.TempFiles.Remove(rasterImageDef.SourceFileName); } } catch { } if (!rasterImageDef.IsErased) { rasterImageDef.Erase(); } ObjectId imageDictionary = RasterImageDef.GetImageDictionary(database); DBDictionary dBDictionary = (DBDictionary)transaction.GetObject(imageDictionary, (OpenMode)1); dBDictionary.Remove(imageDefId); dBDictionary.Contains(imageDefId); if (!rasterImage.IsErased) { rasterImage.Erase(false); } this.RemoveDictionary(database, transaction); parentDocument.TransactionManager.QueueForGraphicsFlush(); parentDocument.TransactionManager.FlushGraphics(); parentDocument.Editor.UpdateScreen(); transaction.Commit(); base.ParentDataset.ImageServices.Remove(base.Name); editor.Regen(); MSCDataset.SetDefaultActiveRasterServices(); result = true; } } } catch { MessageBox.Show("DEBUG: Catch in MSCMapService.DeleteService"); result = false; } return(result); }