Example #1
0
        /// <summary>
        /// 初始化许可
        /// </summary>
        /// <returns></returns>
        public bool CheckLicenses()
        {
            if (m_AoInitialize == null)
            {
                MessageBox.Show("不能初始化", "ArcGIS Engine许可错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            esriLicenseStatus licenseStatus = (esriLicenseStatus)m_AoInitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);

            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                licenseStatus = (esriLicenseStatus)m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
                if (licenseStatus != esriLicenseStatus.esriLicenseAlreadyInitialized)
                {
                    if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        MessageBox.Show("初始化失败,应用程序不能运行!", "ArcGIS Engine许可错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        return(false);
                    }
                }
                else
                {
                    MessageBox.Show("程序运行期间重复初始化!");
                }
            }
            else
            {
                MessageBox.Show("初始化失败,应用程序不能运行!", "ArcGIS Engine许可错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            return(true);
        }
        public void InitializeApplication(esriLicenseProductCode[] products,esriLicenseExtensionCode [] extensions)
        {
            // Binding a product
            RuntimeManager.Bind(ProductCode.EngineOrDesktop);
            // Initialize a product code
            m_AoInit = new AoInitializeClass();
            esriLicenseProductCode currentProduct = new esriLicenseProductCode();
            foreach (esriLicenseProductCode prod in products)
            {
                esriLicenseStatus prodStatus = m_AoInit.IsProductCodeAvailable(prod);
                if(prodStatus==esriLicenseStatus.esriLicenseAvailable)
                {
                    prodStatus=m_AoInit.Initialize(prod);
                    if(prodStatus==esriLicenseStatus.esriLicenseAlreadyInitialized||prodStatus==esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        currentProduct = prod;
                    }
                }
            }

            if(m_AoInit.InitializedProduct()!=null)
            {
                foreach (esriLicenseExtensionCode ext in extensions)
                {
                    m_RequetedExtensionCodes.Add(ext);

                    esriLicenseStatus extStatus = m_AoInit.IsExtensionCodeAvailable(currentProduct,ext);
                    if (extStatus == esriLicenseStatus.esriLicenseAvailable)
                        m_AoInit.CheckOutExtension(ext);

                }
            }
        }
        private static void InitializeLicensing(IAoInitialize aoInit)
        {
            // Check out the lowest available license level.
            var licenseLevels = new List <esriLicenseProductCode>()
            {
                esriLicenseProductCode.esriLicenseProductCodeBasic,
                esriLicenseProductCode.esriLicenseProductCodeEngine,
                esriLicenseProductCode.esriLicenseProductCodeStandard,
                esriLicenseProductCode.esriLicenseProductCodeAdvanced,
                esriLicenseProductCode.esriLicenseProductCodeArcServer
            };

            var licenseStatus = esriLicenseStatus.esriLicenseUnavailable;

            foreach (var licenseLevel in licenseLevels)
            {
                licenseStatus = aoInit.Initialize(licenseLevel);
                if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut || licenseStatus == esriLicenseStatus.esriLicenseAlreadyInitialized)
                {
                    break;
                }
            }

            if (licenseStatus != esriLicenseStatus.esriLicenseAlreadyInitialized && licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
            {
                throw new ArcGISLicensingException($"Product license initialization failed. License status: {licenseStatus}");
            }

            licenseStatus = aoInit.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork);
            if (licenseStatus != esriLicenseStatus.esriLicenseAlreadyInitialized && licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
            {
                throw new ArcGISLicensingException($"Network extension license initialization failed. License status: {licenseStatus}");
            }
        }
        public void SetUp()
        {
            license = new AoInitializeClass();
            license.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcEditor);

            _dataDirectory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
        }
Example #5
0
 private static void getLicense()
 {
     if (!ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop))
     {
         throw new Exception("Could not set version. ");
     }
     m_License = new AoInitializeClass();
     m_License.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
 }
Example #6
0
        private esriLicenseStatus CheckOutLicenses()
        {
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseNotInitialized;

            //Determine if the product is available
            for (int i = 0; i < m_productsCode.Length; i++)
            {
                esriLicenseProductCode pc = m_productsCode[i];
                licenseStatus = m_AoInitialize.IsProductCodeAvailable(pc);
                if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    licenseStatus = m_AoInitialize.Initialize(pc);
                    if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        m_initProduct = pc;
                        break;
                    }
                }
            }

            if (m_pExtensionsCode != null)
            {
                //Checkout the extensions - only when product is initialized
                if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut)
                {
                    System.Collections.ArrayList initExts = new System.Collections.ArrayList(m_pExtensionsCode.Length);
                    foreach (esriLicenseExtensionCode extLicense in m_pExtensionsCode)
                    {
                        //Determine if the extensions are available - some may not be available depending on the product initialized
                        //If so, initialization fails...
                        licenseStatus = m_AoInitialize.IsExtensionCodeAvailable(m_initProduct, extLicense);
                        if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                        {
                            licenseStatus = m_AoInitialize.CheckOutExtension(extLicense);
                            if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut && licenseStatus != esriLicenseStatus.esriLicenseAlreadyInitialized)
                            {
                                break;
                            }

                            //Add to license initialized list
                            initExts.Add(extLicense);
                        }
                        else
                        {
                            break; //Exit when failed to check out any extension
                        }
                    }
                    if (initExts.Count > 0)
                    {
                        m_initExts = new esriLicenseExtensionCode[initExts.Count];
                        m_initExts = (esriLicenseExtensionCode[])initExts.ToArray(typeof(esriLicenseExtensionCode));
                    }
                }
            }
            return(licenseStatus);
        }
Example #7
0
        private bool Initialize()
        {
            if (m_requestedProducts == null || m_requestedProducts.Count == 0)
            {
                return(false);
            }

            esriLicenseProductCode currentProduct = new esriLicenseProductCode();
            bool productInitialized = false;

            //Try to initialize a product
            ILicenseInformation licInfo = (ILicenseInformation)m_AoInit;

            m_requestedProducts.Sort();
            if (!InitializeLowerProductFirst)             //Request license from highest to lowest
            {
                m_requestedProducts.Reverse();
            }

            foreach (int prodNumber in m_requestedProducts)
            {
                esriLicenseProductCode prod   = (esriLicenseProductCode)Enum.ToObject(typeof(esriLicenseProductCode), prodNumber);
                esriLicenseStatus      status = m_AoInit.IsProductCodeAvailable(prod);
                if (status == esriLicenseStatus.esriLicenseAvailable)
                {
                    status = m_AoInit.Initialize(prod);
                    if (status == esriLicenseStatus.esriLicenseAlreadyInitialized ||
                        status == esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        productInitialized = true;
                        currentProduct     = m_AoInit.InitializedProduct();
                    }
                }

                m_productStatus.Add(prod, status);

                if (productInitialized)
                {
                    break;
                }
            }

            m_hasInitializeProduct = productInitialized;
            m_requestedProducts.Clear();

            //No product is initialized after trying all requested licenses, quit
            if (!productInitialized)
            {
                return(false);
            }

            //Check out extension licenses
            return(CheckOutLicenses(currentProduct));
        }
        /// <summary>
        /// Create an instance of the test class.
        /// </summary>
        /// <remarks>Constructor contains necessary set up logic, including initialisation of esri license and opening test feature classes</remarks>
        public EsriToGeoJsonTest()
        {
            //initialise an esri license
            ESRI.ArcGIS.RuntimeManager.BindLicense(ESRI.ArcGIS.ProductCode.Desktop);

            if (!ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop))
            {
                throw new ApplicationException("Failed to initialise ArcGIS License");
            }

            _license = new AoInitialize();
            _license.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcView);
        }
Example #9
0
        private esriLicenseStatus CheckOutLicenses(esriLicenseProductCode productCode)
        {
            esriLicenseStatus licenseStatus;

            //是否产品是可能的
            licenseStatus = m_AoInitialize.IsProductCodeAvailable(productCode);
            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                //用相应的许可文件进行初始化
                licenseStatus = m_AoInitialize.Initialize(productCode);
            }
            return(licenseStatus);
        }
Example #10
0
        private static esriLicenseStatus CheckOutLicenses(esriLicenseProductCode esriLicenseProductCode_0,
                                                          esriLicenseExtensionCode esriLicenseExtensionCode_0)
        {
            if (m_pAoInitialize == null)
            {
                // m_pAoInitialize = new AoInitializeClass();
            }
            esriLicenseStatus status = m_pAoInitialize.IsProductCodeAvailable(esriLicenseProductCode_0);

            if (status == esriLicenseStatus.esriLicenseAvailable)
            {
                status = m_pAoInitialize.IsExtensionCodeAvailable(esriLicenseProductCode_0, esriLicenseExtensionCode_0);
                if (status == esriLicenseStatus.esriLicenseAvailable)
                {
                    status = m_pAoInitialize.Initialize(esriLicenseProductCode_0);
                    if (status == esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        status = m_pAoInitialize.CheckOutExtension(esriLicenseExtensionCode_0);
                    }
                }
            }
            return(status);
        }
        private bool InitializeProduct(esriLicenseProductCode productCode)
        {
            esriLicenseStatus status = m_pAoInit.IsProductCodeAvailable(productCode);

            if (status == esriLicenseStatus.esriLicenseAvailable)
            {
                status = m_pAoInit.Initialize(productCode);
                if (status == esriLicenseStatus.esriLicenseCheckedOut ||
                    status == esriLicenseStatus.esriLicenseAlreadyInitialized)
                {
                    return(true);
                }
            }
            return(false);
        }
Example #12
0
 private bool _IdentifySDE()
 {
     try
     {
         if (!ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop))
         {
             System.Environment.Exit(0);
         }
         m_AoInitialize = new ESRI.ArcGIS.esriSystem.AoInitialize();
         m_AoInitialize.Initialize(ESRI.ArcGIS.esriSystem.esriLicenseProductCode.esriLicenseProductCodeAdvanced);
     }
     catch
     {
         return(false);
     }
     return(true);
 }
Example #13
0
        public static void MyTestInitialize(TestContext testContext)
        {
            // 初始化ArcObjects权限
            #region Licensing
            ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.EngineOrDesktop);
            aoInitialize  = new AoInitializeClass();
            licenseStatus = aoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
            if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
            {
                Console.WriteLine("Unable to check-out an ArcInfo license, error code is {0}", licenseStatus);
                return;
            }
            #endregion

            // 创建测试结果文件夹
            System.IO.Directory.CreateDirectory(m_testResultFolder);
        }
Example #14
0
        public static bool StartUp()
        {
            try
            {
                if (aoinitialize == null)
                {
                    Console.WriteLine("没有安装ARCEngine,系统无法进行");
                    return(false);
                }
                ESRI.ArcGIS.esriSystem.esriLicenseStatus licensesStatus = (ESRI.ArcGIS.esriSystem.esriLicenseStatus)aoinitialize.IsProductCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
                if (licensesStatus == esriLicenseStatus.esriLicenseAvailable)
                {
                    licensesStatus = (esriLicenseStatus)aoinitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB);
                    if (licensesStatus != esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        Console.WriteLine("没有ARCEngine中的GDBEdit许可!");
                        return(false);
                    }
                }
                else
                {
                    Console.WriteLine("没有ARCEngine中的GDBEdit许可!");
                    return(false);
                }

                licensesStatus = aoinitialize.IsExtensionCodeAvailable(esriLicenseProductCode.esriLicenseProductCodeEngine, esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork);
                licensesStatus = (ESRI.ArcGIS.esriSystem.esriLicenseStatus)aoinitialize.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork);
                if (licensesStatus == esriLicenseStatus.esriLicenseCheckedOut)
                {
                }
                else
                {
                    Console.WriteLine("没有ARCEngine中的NetWork许可!");
                    return(false);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("ArcEngine的许可错误" + ex.Message);
                return(false);
            }

            return(true);
        }
        //签出产品许可
        private bool CheckOutLicenseMain(esriLicenseProductCode code)
        {
            try
            {
                if (m_AoInitializeClass.IsProductCodeAvailable(code) == esriLicenseStatus.esriLicenseAvailable)
                {
                    if (m_AoInitializeClass.Initialize(code) == esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        m_AoInitializeClass.InitializedProduct();
                        return(true);
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Trace.WriteLine(ex.Message);
            }

            return(false);
        }
Example #16
0
        /// <summary>
        /// 
        /// </summary>
        public LicenseInit()
        {
            esriLicenseProductCode esriProductCode = esriLicenseProductCode.esriLicenseProductCodeArcServer;
            if (RuntimeManager.Bind(ProductCode.Server))
            {
                isInitialized = true;
                esriProductCode = esriLicenseProductCode.esriLicenseProductCodeArcServer;
            }
            else if (RuntimeManager.Bind(ProductCode.Desktop))
            {
                esriProductCode = esriLicenseProductCode.esriLicenseProductCodeStandard;
                isInitialized = true;
            }
            else
            {
                throw new Exception("ESRI license not available");
            }

            I_LicenseInitializer = new AoInitialize();
            I_LicenseInitializer.Initialize(esriProductCode);
        }
Example #17
0
        /// <summary>
        ///  Attempts to checkout a license for the specified ESRI product and returns true if successful.
        /// </summary>
        public bool GetArcGISLicense(esriLicenseProductCode prodCode)
        {
            //Create a new AoInitialize object
            try
            {
                _AoInitialize = new AoInitializeClass();
            }//The initialization object
            catch
            {
                _log.Warn("Warning: Unable to initialize Arc Objects. License cannot be checked out.");
                return false;
            }

            if (_AoInitialize == null)
            {
                _log.Warn("Warning: Unable to initialize Arc Objects. License cannot be checked out.");
                return false;
            }
            //Determine if the product is available
            esriLicenseStatus licenseStatus = (esriLicenseStatus)_AoInitialize.IsProductCodeAvailable(prodCode);
            if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
            {
                licenseStatus = (esriLicenseStatus)_AoInitialize.Initialize(prodCode);
                if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
                {
                    _log.Warn("Warning: The license checkout for " + prodCode.ToString() + " failed!");
                    return false;
                }
            }
            else
            {
                _log.Warn("Warning: The ArcGIS product " + prodCode.ToString() + " is unavailable!");
                return false;
            }

            return true;
        }
Example #18
0
        public override void Initialize(IArgument[] arguments)
        {
            //set component to run in loop mode
            this.CascadingUpdateCallsDisabled = true;

            Status = LinkableComponentStatus.Initializing;

            //read arguments
            foreach (IArgument entry in arguments)
            {
                if (entry.Id == "ElevationSurface")
                {
                    _Inpath = Path.GetFullPath(entry.Value.ToString());
                }
                else if (entry.Id == "OutputFile")
                {
                    _outpath = Path.GetFullPath(entry.Value.ToString());
                }
            }


            // -- Time settings for input and output exchange items --
            ITime timeHorizon = new Time(StartTime, EndTime);


            //Create input element set
            Element e = new Element("Elevation Surface");

            e.Id = "Elevation Surface";
            ElementSet eSet = new ElementSet("Elevation Surface", "Elevation Surface", ElementType.IdBased);

            eSet.AddElement(e);
            Quantity quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Elevation Surface", "Elevation Surface");

            //add input item
            _InputItem = new EngineEInputItem("ElevationSurface", quantity, eSet, this);
            //_InputItem.StoreValuesInExchangeItem = true;
            _InputItem.SetTimeHorizon(timeHorizon);
            this.EngineInputItems.Add(_InputItem);
            _InputItem.SetSingleTime(StartTime);

            //add input exchange item to input item list
            _inputs.Add(_InputItem);


            //create output element set
            e    = new Element("Filled Surface");
            e.Id = "Filled Surface";
            eSet = new ElementSet("Filled Surface", "Filled Surface", ElementType.IdBased);
            eSet.AddElement(e);
            quantity = new Quantity(new Unit("Raster", 1.0, 0.0, "Raster"), "Filled Surface", "Filled Surface");
            //add output item
            _OutputItem = new EngineEOutputItem("Filled Surface", quantity, eSet, this);
            _OutputItem.SetSingleTime(StartTime);

            //_OutputItem.StoreValuesInExchangeItem = true;
            _OutputItem.SetTimeHorizon(timeHorizon);
            this.EngineOutputItems.Add(_OutputItem);

            //add output exchange item to output item list
            _outputs.Add(_OutputItem);



            //initialize geoprocessing objects
            GP = new Geoprocessor();
            GP.OverwriteOutput = true;

            //checkout spatial analyst license
            esriLicenseStatus LicenseStatus = esriLicenseStatus.esriLicenseUnavailable;

            LicenseStatus = license.Initialize(esriLicenseProductCode.esriLicenseProductCodeArcInfo);
            LicenseStatus = license.CheckOutExtension(esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst);


            Status = LinkableComponentStatus.Initialized;
        }
Example #19
0
        private esriLicenseStatus CheckOutLicenses()
        {
            var licenseStatus = esriLicenseStatus.esriLicenseNotInitialized;

            //Determine if the product is available
            foreach (esriLicenseProductCode productCode in _productsCodes)
            {
                licenseStatus = _aoInitialize.IsProductCodeAvailable(productCode);

                if (licenseStatus != esriLicenseStatus.esriLicenseAvailable)
                {
                    continue;
                }

                // NOTE: in case the license expires in less than 15 days and the registry key
                //       HKEY_LOCAL_MACHINE\Software\ESRI\License does not have a string value
                //       with the name TIMEOUTWARNING and the value FALSE
                //       a message box will pop up here. This is a problem if running as scheduled
                //       task - make sure this value exists and is set to false on all servers!
                _msg.DebugFormat("Initializing license: {0}", productCode);
                licenseStatus = _aoInitialize.Initialize(productCode);

                if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut)
                {
                    _initProduct = productCode;
                    break;
                }
            }

            if (_extensionsCodes != null)
            {
                //Checkout the extensions - only when product is initialized
                if (licenseStatus == esriLicenseStatus.esriLicenseCheckedOut)
                {
                    var checkedOutExtensions =
                        new List <esriLicenseExtensionCode>(_extensionsCodes.Length);

                    foreach (esriLicenseExtensionCode extLicense in _extensionsCodes)
                    {
                        //Determine if the extensions are available - some may not be available depending on the product initialized
                        //If so, initialization fails...
                        licenseStatus =
                            _aoInitialize.IsExtensionCodeAvailable(_initProduct, extLicense);
                        if (licenseStatus == esriLicenseStatus.esriLicenseAvailable)
                        {
                            _msg.DebugFormat("Checking out extension: {0}", extLicense);

                            licenseStatus = _aoInitialize.CheckOutExtension(extLicense);

                            if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut &&
                                licenseStatus != esriLicenseStatus.esriLicenseAlreadyInitialized)
                            {
                                break;
                            }

                            //Add to license initialized list
                            checkedOutExtensions.Add(extLicense);
                        }
                        else
                        {
                            break;                             //Exit when failed to check out any extension
                        }
                    }

                    if (checkedOutExtensions.Count > 0)
                    {
                        _initializedExtensions = checkedOutExtensions.ToList();
                    }
                }
            }

            return(licenseStatus);
        }
 private static void getLicense()
 {
     if (!ESRI.ArcGIS.RuntimeManager.Bind(ESRI.ArcGIS.ProductCode.Desktop))
         throw new Exception("Could not set version. ");
     m_License = new AoInitializeClass();
     m_License.Initialize(esriLicenseProductCode.esriLicenseProductCodeAdvanced);
 }
        private bool Initialize()
        {
            //Version 10 check
            //if (RuntimeManager.ActiveRuntime == null)
            //    return false;

            if (m_requestedProducts == null || m_requestedProducts.Count == 0)
                return false;

            bool productInitialized = false;

            m_requestedProducts.Sort();
            if (!InitializeLowerProductFirst) //Request license from highest to lowest
                m_requestedProducts.Reverse();

            m_AoInit = new AoInitializeClass();
            esriLicenseProductCode currentProduct = new esriLicenseProductCode();

            //version 9.3 check
            //Try to initialize a product
            ILicenseInformation licInfo = (ILicenseInformation)m_AoInit;
            // licInfo is not used??

            foreach (int prodNumber in m_requestedProducts)
            {
                esriLicenseProductCode prod = (esriLicenseProductCode)Enum.ToObject(typeof(esriLicenseProductCode), prodNumber);
                esriLicenseStatus status = m_AoInit.IsProductCodeAvailable(prod);
                if (status == esriLicenseStatus.esriLicenseAvailable)
                {
                    status = m_AoInit.Initialize(prod);
                    if (status == esriLicenseStatus.esriLicenseAlreadyInitialized ||
                        status == esriLicenseStatus.esriLicenseCheckedOut)
                    {
                        productInitialized = true;
                        currentProduct = m_AoInit.InitializedProduct();
                    }
                }

                m_productStatus.Add(prod, status);

                if (productInitialized)
                    break;
            }

            m_hasInitializeProduct = productInitialized;
            m_requestedProducts.Clear();

            //No product is initialized after trying all requested licenses, quit
            if (!productInitialized)
            {
                return false;
            }

            //Check out extension licenses
            return CheckOutLicenses(currentProduct);
        }