Stephan Dekker

If you are out to describe the truth, leave elegance to the tailor. (Albert Einstein, 1879 - 1955)

March 2006 - Posts

For once and for all i am going to write this down so that i can find the snippet back when I need it.....

   /// <summary>
   /// Creeert een nieuw AmiceBedrijfsNummerService proxy object
   /// </summary>
   /// <returns>AmiceBedrijfsNummerService object</returns>
   private AmiceBedrijfsNummerService CreateBNSObject()
   {
    AmiceBedrijfsNummerService lv_BNS = null;
    try
    {
     // We need settings to init the new object
     if (m_settings == null)
     {
      m_strErrorMessage = "Settings object not specified!";
      throw (new AmiceException(m_strErrorMessage));
     }

     // Create AMICE object
     lv_BNS = new AmiceBedrijfsNummerService();
     lv_BNS.Url = m_settings.URL;
     lv_BNS.Credentials = new System.Net.NetworkCredential(m_settings.Username, m_settings.Password);

     // Create proxy
     if (m_settings.IsProxyUsed)
     {
      System.Net.IWebProxy lv_Proxy = new System.Net.WebProxy(m_settings.ProxyAddress, m_settings.ProxyPort);
      lv_Proxy.Credentials = new System.Net.NetworkCredential(m_settings.ProxyUsername, m_settings.ProxyPassword, m_settings.ProxyDomain);
      lv_BNS.Proxy = lv_Proxy;
     }

     // Add client certificate
     if (m_settings.IsCertUsed)
     { 
      X509Certificate cert = null;
      byte[] strDER;
      switch (m_settings.CertType)
      {
       case "Base64Header":
        strDER = Base64Header_to_DER(m_settings.CertPath);
        cert = new X509Certificate(strDER);
        break;
       case "Base64":
        strDER = Base64_to_DER(m_settings.CertPath);
        cert = new X509Certificate(strDER);
        break;
       case "DER":
        cert = X509Certificate.CreateFromCertFile(m_settings.CertPath);
        break;
       default:
        m_strErrorMessage = "Unknown certificate type specified!!";
        lv_BNS = null;
        throw (new AmiceException(m_strErrorMessage));
      }

      if (cert!=null)
      {
       // Add the certificate to the BNS object
       lv_BNS.ClientCertificates.Add(cert);
      }
      else
      {
       m_strErrorMessage = "Certificate object not created!!";
       lv_BNS = null;
       throw (new AmiceException(m_strErrorMessage));
      }
     }

     return lv_BNS;
    }
    catch (AmiceException exc)
    {
     m_strErrorMessage = "CreateBNSObject -> " + m_strErrorMessage;
     lv_BNS = null;
     throw (new AmiceException(m_strErrorMessage, exc));     
    }
    catch (Exception exc)
    { 
     m_strErrorMessage = "CreateBNSObject -> Ongespecificeerde fout!";
     lv_BNS = null;
     throw (new AmiceException(m_strErrorMessage, exc));     
    }
   }

So, there you have it....