/// <summary>
    /// Initialize the application with the specified product and extension license code.
    /// </summary>    
    /// <returns>Initialization is successful.</returns>
    /// <remarks>
    /// If no active runtime has been bound to the application before license initialization
    /// takes place, the ResolveBindingEvent is raised.
    /// </remarks>
    public bool InitializeApplication(esriLicenseProductCode[] productCodes, esriLicenseExtensionCode[] extensionLics)
    {
      //Cache product codes by enum int so can be sorted without custom sorter
      m_requestedProducts = new List<int>();
      foreach (esriLicenseProductCode code in productCodes)
      {
        int requestCodeNum = Convert.ToInt32(code);
        if (!m_requestedProducts.Contains(requestCodeNum))
        {
          m_requestedProducts.Add(requestCodeNum);
        }
      }
      AddExtensions(extensionLics);

      // Make sure an active version has been loaded before calling any ArcObjects code. 
      RuntimeInfo boundRuntime = RuntimeManager.ActiveRuntime;
      if (boundRuntime != null &&
        (this.AllowImplicitRuntimeBinding || boundRuntime.Product > ProductCode.ArcGIS))
      {  
        m_AoInit = new AoInitializeClass();
      }
      else
      {
        EventHandler temp = ResolveBindingEvent;
        if (temp != null)
        {
          temp(this, new EventArgs());

          if (RuntimeManager.ActiveRuntime != null)
            m_AoInit = new AoInitializeClass();
        }
      }
      return Initialize();
    }
        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);

                }
            }
        }
    /// <summary>
    /// Initialize the application with the specified product and extension license code.
    /// </summary>    
    /// <returns>Initialization is successful.</returns>
    /// <remarks>
    /// Make sure an active ArcGIS runtime has been bound before license initialization.
    /// </remarks>
    public bool InitializeApplication(esriLicenseProductCode[] productCodes, esriLicenseExtensionCode[] extensionLics)
    {
      //Cache product codes by enum int so can be sorted without custom sorter
      m_requestedProducts = new List<int>();
      foreach (esriLicenseProductCode code in productCodes)
      {
        int requestCodeNum = Convert.ToInt32(code);
        if (!m_requestedProducts.Contains(requestCodeNum))
        {
          m_requestedProducts.Add(requestCodeNum);
        }
      }
      AddExtensions(extensionLics);

      // Make sure an active runtime has been bound before calling any ArcObjects code. 
      if (RuntimeManager.ActiveRuntime == null)
      {
        EventHandler temp = ResolveBindingEvent;
        if (temp != null)
        {
          temp(this, new EventArgs());
        }
      }

      return Initialize();
    }
		private bool m_productCheckOrdering = true; //default from low to high
		#endregion

		public bool InitializeApplication(esriLicenseProductCode[] productCodes, esriLicenseExtensionCode[] extensionLics)
		{
			//Cache product codes by enum int so can be sorted without custom sorter
			m_requestedProducts = new List<int>();
			foreach (esriLicenseProductCode code in productCodes)
			{
				int requestCodeNum = Convert.ToInt32(code);
				if (!m_requestedProducts.Contains(requestCodeNum))
				{
					m_requestedProducts.Add(requestCodeNum);
				}
			}

			AddExtensions(extensionLics);
			return Initialize();
		}
Beispiel #5
0
        public bool InitializeApplication(esriLicenseProductCode[] productCodes, esriLicenseExtensionCode[] extensionLics)
        {
            bool bInitialized = true;
            if (m_AoInitialize == null)
            {
                bInitialized = false;
            }
            //Initialize the application
            esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;

            m_productsCode = productCodes;
            m_pExtensionsCode = extensionLics;
            licenseStatus = CheckOutLicenses();
            if (licenseStatus != esriLicenseStatus.esriLicenseCheckedOut)
            {
                bInitialized = false;
            }
            return bInitialized;
        }
        private string ReportInformation(ILicenseInformation licInfo,
                                         esriLicenseExtensionCode code, esriLicenseStatus status)
        {
            string extensionName = string.Empty;

            try
            {
                extensionName = licInfo.GetLicenseExtensionName(code);
            }
            catch
            {
                extensionName = code.ToString();
            }

            string statusInfo = string.Empty;

            switch (status)
            {
            case esriLicenseStatus.esriLicenseAlreadyInitialized:
            case esriLicenseStatus.esriLicenseCheckedOut:
                statusInfo = string.Format(MessageExtensionAvailable, extensionName);
                break;

            case esriLicenseStatus.esriLicenseCheckedIn:
                break;

            case esriLicenseStatus.esriLicenseUnavailable:
                statusInfo = string.Format(MessageExtensionUnavailable, extensionName);
                break;

            case esriLicenseStatus.esriLicenseFailure:
                statusInfo = string.Format(MessageExtensionFailed, extensionName);
                break;

            default:
                statusInfo = string.Format(MessageExtensionNotLicensed, extensionName);
                break;
            }

            return(statusInfo);
        }
Beispiel #7
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);
        }
        /// <summary>
        /// Checks out ESRI Product and Extension Licenses.
        /// </summary>
        /// <remarks>
        /// This method is ultimately called by all other start methods.
        /// It contains all the ESRI specific code. and will block until a license is returned,
        /// or the license cannot be obtained.  The time to complete can vary greatly on the speed
        /// of the user's connection to a license server.
        /// </remarks>
        private static void PrivateStart()
        {
            lock (_AOLicenseInitializer) //To protect get/set of Running from multiple threads
            {
                if (!Running)
                {
                    Trace.TraceInformation("{0}: Begin Get ArcGIS License", DateTime.Now); Stopwatch time = Stopwatch.StartNew();
                    //version 10 change:
                    RuntimeManager.Bind(ProductCode.Desktop);

                    _AOLicenseInitializer.InitializeLowerProductFirst = Settings.Default.CheckForArcViewBeforeArcInfo;

                    //Uncomment Additional license/extensions you want to check out
#if ARCGIS_10_1            
                    esriLicenseProductCode[] products = new[]
                                                            {
                                                                esriLicenseProductCode.esriLicenseProductCodeAdvanced,     //60
                                                                esriLicenseProductCode.esriLicenseProductCodeStandard,   //50
                                                                esriLicenseProductCode.esriLicenseProductCodeBasic,     //40
                                                                //esriLicenseProductCode.esriLicenseProductCodeArcServer,   //30
                                                                //esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB, //20
                                                                //esriLicenseProductCode.esriLicenseProductCodeEngine,      //10
                                                            };
#else
                    esriLicenseProductCode[] products = new[]
                                                            {
                                                                esriLicenseProductCode.esriLicenseProductCodeArcInfo,     //60
                                                                esriLicenseProductCode.esriLicenseProductCodeArcEditor,   //50
                                                                esriLicenseProductCode.esriLicenseProductCodeArcView,     //40
                                                                //esriLicenseProductCode.esriLicenseProductCodeArcServer,   //30
                                                                //esriLicenseProductCode.esriLicenseProductCodeEngineGeoDB, //20
                                                                //esriLicenseProductCode.esriLicenseProductCodeEngine,      //10
                                                            };
#endif
                    esriLicenseExtensionCode[] extensions = new esriLicenseExtensionCode[]
                                                                { 
                                                                    //esriLicenseExtensionCode.esriLicenseExtensionCode3DAnalyst,
                                                                    //esriLicenseExtensionCode.esriLicenseExtensionCodeCOGO,
                                                                    //esriLicenseExtensionCode.esriLicenseExtensionCodeGeoStats,
                                                                    //esriLicenseExtensionCode.esriLicenseExtensionCodeNetwork,
                                                                    //esriLicenseExtensionCode.esriLicenseExtensionCodeSpatialAnalyst,
                                                                    //esriLicenseExtensionCode.esriLicenseExtensionCodeSurvey,
                                                                    //...
                                                                };
                    bool initSucceeded = _AOLicenseInitializer.InitializeApplication(products, extensions);

                    if (!initSucceeded)
                    {
                        Message = _AOLicenseInitializer.LicenseMessage();
                        Running = false;
                    }
                    else
                    {
                        Message = null;
                        Running = true;
                    }

                    time.Stop(); Trace.TraceInformation("{0}: End   Get ArcGIS License, total time {1}sec{2}ms", DateTime.Now, time.Elapsed.Seconds, time.Elapsed.Milliseconds);
                }
            }
        }
 /// <summary>
 /// Indicates if the extension is currently checked out.
 /// </summary>
 /// <param name="code">
 /// The code.
 /// </param>
 public bool IsExtensionCheckedOut(esriLicenseExtensionCode code)
 {
     return _aoInit.IsExtensionCheckedOut(code);
 }
 public bool IsExtensionCheckedOut (esriLicenseExtensionCode code)
 {
     return false;
 }
 public esriLicenseStatus IsExtensionCodeAvailable(esriLicenseProductCode p, esriLicenseExtensionCode e)
 {
     return esriLicenseStatus.esriLicenseCheckedIn;
 }
 public string GetLicenseExtensionName(esriLicenseExtensionCode code)
 {
     return string.Empty;
 }
Beispiel #13
0
 public esriLicenseStatus CheckinExtension(esriLicenseExtensionCode extensionCode)
 {
     return(_initializer.CheckinExtension(extensionCode));
 }
 /// <summary>
 /// Indicates if the extension is currently checked out.
 /// </summary>
 public bool IsExtensionCheckedOut(esriLicenseExtensionCode code)
 {
   return m_AoInit != null && m_AoInit.IsExtensionCheckedOut(code);
 }
 public esriLicenseStatus CheckOutExtension (esriLicenseExtensionCode code)
 {
     return esriLicenseStatus.esriLicenseCheckedOut;
 }
    private string ReportInformation(ILicenseInformation licInfo,
        esriLicenseExtensionCode code, esriLicenseStatus status)
    {
      string extensionName = string.Empty;
      try
      {
        extensionName = licInfo.GetLicenseExtensionName(code);
      }
      catch
      {
        extensionName = code.ToString();
      }

      string statusInfo = string.Empty;

      switch (status)
      {
        case esriLicenseStatus.esriLicenseAlreadyInitialized:
        case esriLicenseStatus.esriLicenseCheckedOut:
          statusInfo = string.Format(MessageExtensionAvailable, extensionName);
          break;
        case esriLicenseStatus.esriLicenseCheckedIn:
          break;
        case esriLicenseStatus.esriLicenseUnavailable:
          statusInfo = string.Format(MessageExtensionUnavailable, extensionName);
          break;
        case esriLicenseStatus.esriLicenseFailure:
          statusInfo = string.Format(MessageExtensionFailed, extensionName);
          break;
        default:
          statusInfo = string.Format(MessageExtensionNotLicensed, extensionName);
          break;
      }

      return statusInfo;
    }
 public esriLicenseStatus CheckInExtension (esriLicenseExtensionCode code)
 {
     return esriLicenseStatus.esriLicenseCheckedIn;
 }
 /// <summary>
 /// Indicates if the extension is currently checked out.
 /// </summary>
 public bool IsExtensionCheckedOut(esriLicenseExtensionCode code)
 {
     return(m_AoInit != null && m_AoInit.IsExtensionCheckedOut(code));
 }
        /// <summary>
        /// Initialize application license
        /// </summary>
        /// <param name="productCodes">Products codes</param>
        /// <param name="extensionLics">Extensions codes.</param>
        public bool InitializeApplication(esriLicenseProductCode[] productCodes, esriLicenseExtensionCode[] extensionLics)
        {
            if (!RuntimeManager.Bind(ProductCode.EngineOrDesktop))
            {
                return false;
            }

            _aoInit = new AoInitializeClass();

            // Cache product codes by enum int so can be sorted without custom sorter
            _requestedProducts = new List<int>();
            foreach (var requestCodeNum in productCodes.Select(code => Convert.ToInt32(code)).Where(requestCodeNum => !_requestedProducts.Contains(requestCodeNum)))
            {
                _requestedProducts.Add(requestCodeNum);
            }

            AddExtensions(extensionLics);
            return Initialize();
        }