public void Refresh()
        {
            this.ClearActiveFeatureClass();
            this.CurrentImageService = null;
            this.CurrentMapService   = null;
            this.DocPRJ = null;
            Document document = base.Document;
            Database arg_28_0 = document.Database;

            try
            {
                using (Transaction transaction = document.TransactionManager.StartTransaction())
                {
                    this.DocPRJ = new MSCPrj();
                    this.DocPRJ.Initialize(this.NOD, transaction);
                    this.DocDataset.Initialize(document, transaction);
                    MSCDataset.SetDefaultActiveFeatureClass();
                    MSCDataset.SetDefaultActiveRasterServices();
                    document.TransactionManager.QueueForGraphicsFlush();
                    document.TransactionManager.FlushGraphics();
                    document.Editor.UpdateScreen();
                    transaction.Commit();
                    if (AfaDocData.ActiveDocData.DocDataset.HasFeatureServicesOpenedForEditing())
                    {
                        CmdLine.ExecuteQuietCommand("ESRI_UpdatePalette");
                    }
                }
            }
            catch
            {
                ErrorReport.ShowErrorMessage(AfaStrings.ErrorInitializingGISDataset);
            }
        }
 private void btnOK_Click(object sender, RoutedEventArgs e)
 {
     if (this.localRasterService != null)
     {
         AGSExportOptions aGSExportOptions = this.InitExportOptions(this.localRasterService);
         this.mscRasterService.ExportOptions = aGSExportOptions;
         this.mscRasterService.SetTransparency((int)aGSExportOptions.Transparency);
         this.mscRasterService.BoundaryExtent = aGSExportOptions.BoundingBox;
         this.mscRasterService.Dynamic        = aGSExportOptions.Dynamic;
         this.mscRasterService.Write();
         base.Close();
         this.mscRasterService.RefreshService();
     }
     if (this.localFeatureService != null)
     {
         AGSExportOptions aGSExportOptions2 = this.InitExportOptions(this.localFeatureService);
         this.mscFeatureService.ExportOptions = aGSExportOptions2;
         if (!aGSExportOptions2.Dynamic)
         {
             this.mscFeatureService.QueryOnly = true;
             this.mscFeatureService.SetLayerLock(true);
         }
         else
         {
             this.mscFeatureService.QueryOnly = false;
             this.mscFeatureService.SetLayerLock(false);
         }
         this.mscFeatureService.Write();
         base.Close();
         string cmdString = ".esri_Synchronize ";
         CmdLine.ExecuteQuietCommand(cmdString);
     }
 }
 public static void CancelActiveCommand()
 {
     if (!Application.IsQuiescent)
     {
         try
         {
             CmdLine.acedPostCommand("CANCELCMD");
         }
         catch
         {
         }
     }
 }
Ejemplo n.º 4
0
        public void Execute(object param)
        {
            RibbonButton ribbonButton = param as RibbonButton;

            if (ribbonButton != null)
            {
                if (ribbonButton.Id == AfaStrings.RBN_BTN_ESRIMAPS)
                {
                    try
                    {
                        if (Application.IsQuiescent)
                        {
                            CmdLine.CancelActiveCommand();
                            string cmdString = "_ESRI_AddESRIMap ";
                            CmdLine.ExecuteQuietCommand(cmdString);
                        }
                        return;
                    }
                    catch (SystemException ex)
                    {
                        MessageBox.Show(ex.Message);
                        return;
                    }
                }
                if (ribbonButton.Id == AfaStrings.RBN_BTN_ADDMAPSERVICE)
                {
                    CmdLine.CancelActiveCommand();
                    string cmdString2 = "_ESRI_AddService ";
                    CmdLine.ExecuteQuietCommand(cmdString2);
                }
                else
                {
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_TOC)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString3 = "ESRI_SHOWTOC ";
                        CmdLine.ExecuteQuietCommand(cmdString3);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_LAYER_MANAGER)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString4 = ".LAYER ";
                        CmdLine.ExecuteQuietCommand(cmdString4);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_ASSIGN_COORDSYS)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString5 = ".ESRI_ASSIGNCS ";
                        CmdLine.ExecuteQuietCommand(cmdString5);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_LIST_COORDSYS)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString6 = ".ESRI_LISTCS ";
                        CmdLine.ExecuteQuietCommand(cmdString6);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_REMOVE_COORDSYS)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString7 = ".esri_RemoveCS ";
                        CmdLine.ExecuteQuietCommand(cmdString7);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_ZOOMEXTENTS)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString8 = ".ESRI_ZOOMEXTENTS ";
                        CmdLine.ExecuteQuietCommand(cmdString8);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_ZOOMPREVIOUS)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString9 = "'_ZOOM _PREVIOUS ";
                        CmdLine.ExecuteQuietCommand(cmdString9);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_ZOOMWINDOW)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString10 = "'_ZOOM _WINDOW ";
                        CmdLine.ExecuteQuietCommand(cmdString10);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_RESOURCECENTER)
                    {
                        Process.Start(AfaStrings.URI_RESOURCECENTER);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_HELP)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString11 = "ESRI_ArcGISHELP ";
                        CmdLine.ExecuteQuietCommand(cmdString11);
                        return;
                    }
                    if (ribbonButton.Id == AfaStrings.RBN_BTN_ABOUT)
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString12 = "ESRI_AboutArcGIS ";
                        CmdLine.ExecuteQuietCommand(cmdString12);
                        return;
                    }
                    if (ribbonButton.Id == "Command")
                    {
                        CmdLine.CancelActiveCommand();
                        string cmdString13 = (string)ribbonButton.CommandParameter;
                        CmdLine.ExecuteQuietCommand(cmdString13);
                        return;
                    }
                    string message = "Placeholder for " + ribbonButton.Id;
                    ErrorReport.ShowErrorMessage(message);
                    return;
                }
                return;
            }
        }
        private bool PerformLocate(string locateText)
        {
            Document document = AfaDocData.ActiveDocData.Document;
            Editor   editor   = document.Editor;

            if (string.IsNullOrEmpty(locateText))
            {
                editor.WriteMessage(AfaStrings.InvalidPlaceText);
                return(false);
            }
            AGSGeometryServer sampleServer = AGSGeometryServer.GetSampleServer();

            if (sampleServer == null)
            {
                ErrorReport.ShowErrorMessage(AfaStrings.UnableToConnectGeometryService);
                return(false);
            }
            string text = "PROJCS[\"WGS_1984_Web_Mercator_Auxiliary_Sphere\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Mercator_Auxiliary_Sphere\"],PARAMETER[\"False_Easting\",0.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",0.0],PARAMETER[\"Standard_Parallel_1\",0.0],PARAMETER[\"Auxiliary_Sphere_Type\",0.0],UNIT[\"Meter\",1.0],AUTHORITY[\"EPSG\",3857]]".ToString();
            bool   result;

            try
            {
                text = MSCPrj.ReadWKT(document);
                if (string.IsNullOrEmpty(text))
                {
                    text = "PROJCS[\"WGS_1984_Web_Mercator_Auxiliary_Sphere\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Mercator_Auxiliary_Sphere\"],PARAMETER[\"False_Easting\",0.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",0.0],PARAMETER[\"Standard_Parallel_1\",0.0],PARAMETER[\"Auxiliary_Sphere_Type\",0.0],UNIT[\"Meter\",1.0],AUTHORITY[\"EPSG\",3857]]".ToString();
                    MSCPrj.AssignWKT(document, "PROJCS[\"WGS_1984_Web_Mercator_Auxiliary_Sphere\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Mercator_Auxiliary_Sphere\"],PARAMETER[\"False_Easting\",0.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",0.0],PARAMETER[\"Standard_Parallel_1\",0.0],PARAMETER[\"Auxiliary_Sphere_Type\",0.0],UNIT[\"Meter\",1.0],AUTHORITY[\"EPSG\",3857]]");
                }
            }
            catch
            {
                ErrorReport.ShowErrorMessage(AfaStrings.ErrorCreatingWKT);
                result = false;
                return(result);
            }
            if (!MSCPrj.IsWKID(text))
            {
                try
                {
                    text = sampleServer.GetSpatialReferenceWKID(text);
                    if (string.IsNullOrEmpty(text))
                    {
                        string text2 = sampleServer.ErrorMessage;
                        if (string.IsNullOrEmpty(text2))
                        {
                            text2 = AfaStrings.UnsupportedCoordinateSystemForLocate;
                        }
                        ErrorReport.ShowErrorMessage(text2);
                        result = false;
                        return(result);
                    }
                }
                catch
                {
                    text = "PROJCS[\"WGS_1984_Web_Mercator_Auxiliary_Sphere\",GEOGCS[\"GCS_WGS_1984\",DATUM[\"D_WGS_1984\",SPHEROID[\"WGS_1984\",6378137.0,298.257223563]],PRIMEM[\"Greenwich\",0.0],UNIT[\"Degree\",0.0174532925199433]],PROJECTION[\"Mercator_Auxiliary_Sphere\"],PARAMETER[\"False_Easting\",0.0],PARAMETER[\"False_Northing\",0.0],PARAMETER[\"Central_Meridian\",0.0],PARAMETER[\"Standard_Parallel_1\",0.0],PARAMETER[\"Auxiliary_Sphere_Type\",0.0],UNIT[\"Meter\",1.0],AUTHORITY[\"EPSG\",3857]]";
                }
            }
            try
            {
                Convert.ToInt32(text);
            }
            catch
            {
                editor.WriteMessage(AfaStrings.UnsupportedCoordinateSystemForLocate);
                result = false;
                return(result);
            }
            Mouse.OverrideCursor = Cursors.Wait;
            AGSLocator aGSLocator = this.cbLocator.SelectedItem as AGSLocator;
            string     uRL        = aGSLocator.URL;
            string     arg        = uRL.TrimEnd(new char[]
            {
                '/',
                '\\'
            });
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.Append("/findAddressCandidates?SingleLine=");
            stringBuilder.Append(this.tbPlace.Text);
            stringBuilder.AppendFormat("&outSR={0}", text);
            stringBuilder.AppendFormat("&f={0}", "json");
            try
            {
                IDictionary <string, object> dictionary = aGSLocator.ParentConnection.MakeDictionaryRequest(arg + stringBuilder);
                if (dictionary.ContainsKey("error"))
                {
                    editor.WriteMessage(AfaStrings.ErrorConnectingToServer);
                    Mouse.OverrideCursor = null;
                    result = false;
                }
                else
                {
                    CadField cadField = new CadField();
                    cadField.Name     = AfaStrings.SearchString;
                    cadField.Value    = new TypedValue(1, this.tbPlace.Text);
                    cadField.ReadOnly = true;
                    if (dictionary.ContainsKey("candidates"))
                    {
                        DocUtil.FixPDMode();
                        using (document.LockDocument((DocumentLockMode)20, null, null, false))
                        {
                            List <ObjectId> list     = new List <ObjectId>();
                            Database        database = document.Database;
                            try
                            {
                                using (Transaction transaction = document.TransactionManager.StartTransaction())
                                {
                                    BlockTable       blockTable       = (BlockTable)transaction.GetObject(database.BlockTableId, (OpenMode)1, false);
                                    BlockTableRecord blockTableRecord = (BlockTableRecord)transaction.GetObject(blockTable[(BlockTableRecord.ModelSpace)], (OpenMode)1, false);
                                    this.CreateLocationsFeatureClass();
                                    DocUtil.FixPDMode();
                                    string               text3           = "ESRI_Locations";
                                    ObjectId             layer           = DocUtil.GetLayer(database, transaction, ref text3, null);
                                    ObjectId             blockDefinition = DocUtil.GetBlockDefinition(document, transaction, "ESRI_Locations");
                                    IEnumerable <object> enumerable      = dictionary["candidates"] as IEnumerable <object>;
                                    using (IEnumerator <object> enumerator = enumerable.GetEnumerator())
                                    {
                                        while (enumerator.MoveNext())
                                        {
                                            IDictionary <string, object> dictionary2 = (IDictionary <string, object>)enumerator.Current;
                                            CadField cadField2 = null;
                                            CadField cadField3 = null;
                                            if (dictionary2.ContainsKey("address"))
                                            {
                                                string text4 = dictionary2["address"].ToString();
                                                cadField3          = new CadField();
                                                cadField3.Name     = "Address";
                                                cadField3.Value    = new TypedValue(1, text4);
                                                cadField3.ReadOnly = true;
                                            }
                                            if (dictionary2.ContainsKey("score"))
                                            {
                                                try
                                                {
                                                    int num = Convert.ToInt32(dictionary2["score"]);
                                                    cadField2          = new CadField();
                                                    cadField2.Name     = "Score";
                                                    cadField2.Value    = new TypedValue(90, num);
                                                    cadField2.ReadOnly = true;
                                                }
                                                catch
                                                {
                                                }
                                            }
                                            if (dictionary2.ContainsKey("location"))
                                            {
                                                try
                                                {
                                                    IDictionary <string, object> dictionary3 = dictionary2["location"] as IDictionary <string, object>;
                                                    double num2 = Convert.ToDouble(dictionary3["x"]);
                                                    double num3 = Convert.ToDouble(dictionary3["y"]);
                                                    Entity entity;
                                                    if (blockDefinition != ObjectId.Null)
                                                    {
                                                        entity = new BlockReference(new Point3d(num2, num3, 0.0), blockDefinition);
                                                    }
                                                    else
                                                    {
                                                        entity = new DBPoint(new Point3d(num2, num3, 0.0));
                                                    }
                                                    entity.LayerId    = (layer);
                                                    entity.ColorIndex = (256);
                                                    ObjectId item = blockTableRecord.AppendEntity(entity);
                                                    transaction.AddNewlyCreatedDBObject(entity, true);
                                                    list.Add(item);
                                                    if (cadField3 != null)
                                                    {
                                                        CadField.AddCadAttributeToEntity(database, transaction, entity.ObjectId, cadField3);
                                                    }
                                                    if (cadField2 != null)
                                                    {
                                                        CadField.AddCadAttributeToEntity(database, transaction, entity.ObjectId, cadField2);
                                                    }
                                                    CadField.AddCadAttributeToEntity(database, transaction, entity.ObjectId, cadField);
                                                    document.TransactionManager.QueueForGraphicsFlush();
                                                    document.TransactionManager.FlushGraphics();
                                                    document.Editor.UpdateScreen();
                                                }
                                                catch
                                                {
                                                }
                                            }
                                        }
                                    }
                                    transaction.Commit();
                                    if (list.Count > 0)
                                    {
                                        ObjectId[] array = list.ToArray();
                                        DocUtil.ZoomToEntity(array);
                                        AfaDocData.ActiveDocData.DocDataset.UpdateMaps();
                                        AfaDocData.ActiveDocData.Document.Editor.UpdateScreen();
                                        AfaDocData.ActiveDocData.Document.Editor.Regen();
                                        Mouse.OverrideCursor = null;
                                        CmdLine.CancelActiveCommand();
                                        TableView tableView = new TableView(AfaDocData.ActiveDocData.GetActiveFeatureClassOrSubtype(), array);
                                        Autodesk.AutoCAD.ApplicationServices.Application.ShowModalDialog(Autodesk.AutoCAD.ApplicationServices.Application.MainWindow.Handle, tableView, false);
                                        tableView.Uninitialize();
                                        tableView.Dispose();
                                        this.SelectAndDelete();
                                        AfaDocData.ActiveDocData.DocDataset.UpdateMaps();
                                        AfaDocData.ActiveDocData.Document.Editor.UpdateScreen();
                                        AfaDocData.ActiveDocData.Document.Editor.Regen();
                                        result = true;
                                        return(result);
                                    }
                                    Mouse.OverrideCursor = null;
                                    editor.WriteMessage(AfaStrings.NoFeaturesFound + "  (" + this.tbPlace.Text + ")");
                                    result = false;
                                    return(result);
                                }
                            }
                            catch
                            {
                                Mouse.OverrideCursor = null;
                            }
                        }
                    }
                    Mouse.OverrideCursor = null;
                    result = false;
                }
            }
            catch
            {
                Mouse.OverrideCursor = null;
                editor.WriteMessage(AfaStrings.ErrorConnectingToServer);
                result = false;
            }
            return(result);
        }