/// ****************************************************************
        ///	  public Login
        /// ----------------------------------------------------------------
        ///   <summary>
        ///		Logs the current user in.
        ///   </summary>
        /// ****************************************************************
        ///
        public void Login()
        {
            Debug.Enter();

            SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor("net_publisher_login");

            sp.Parameters.Add("@PUID", SqlDbType.NVarChar, UDDI.Constants.Lengths.UserID);
            sp.Parameters.Add("@email", SqlDbType.NVarChar, UDDI.Constants.Lengths.Email, ParameterDirection.InputOutput);

            sp.Parameters.Add("@name", SqlDbType.NVarChar, UDDI.Constants.Lengths.Name, ParameterDirection.Output);
            sp.Parameters.Add("@phone", SqlDbType.VarChar, UDDI.Constants.Lengths.Phone, ParameterDirection.Output);
            sp.Parameters.Add("@companyName", SqlDbType.NVarChar, UDDI.Constants.Lengths.CompanyName, ParameterDirection.Output);
            sp.Parameters.Add("@altPhone", SqlDbType.VarChar, UDDI.Constants.Lengths.Phone, ParameterDirection.Output);
            sp.Parameters.Add("@addressLine1", SqlDbType.NVarChar, UDDI.Constants.Lengths.AddressLine, ParameterDirection.Output);
            sp.Parameters.Add("@addressLine2", SqlDbType.NVarChar, UDDI.Constants.Lengths.AddressLine, ParameterDirection.Output);
            sp.Parameters.Add("@city", SqlDbType.NVarChar, UDDI.Constants.Lengths.City, ParameterDirection.Output);
            sp.Parameters.Add("@stateProvince", SqlDbType.NVarChar, UDDI.Constants.Lengths.StateProvince, ParameterDirection.Output);
            sp.Parameters.Add("@postalCode", SqlDbType.NVarChar, UDDI.Constants.Lengths.PostalCode, ParameterDirection.Output);
            sp.Parameters.Add("@country", SqlDbType.NVarChar, UDDI.Constants.Lengths.Country, ParameterDirection.Output);
            sp.Parameters.Add("@isoLangCode", SqlDbType.VarChar, UDDI.Constants.Lengths.IsoLangCode, ParameterDirection.Output);
            sp.Parameters.Add("@businessLimit", SqlDbType.Int, ParameterDirection.Output);
            sp.Parameters.Add("@businessCount", SqlDbType.Int, ParameterDirection.Output);
            sp.Parameters.Add("@tModelLimit", SqlDbType.Int, ParameterDirection.Output);
            sp.Parameters.Add("@tModelCount", SqlDbType.Int, ParameterDirection.Output);
            sp.Parameters.Add("@serviceLimit", SqlDbType.Int, ParameterDirection.Output);
            sp.Parameters.Add("@bindingLimit", SqlDbType.Int, ParameterDirection.Output);
            sp.Parameters.Add("@assertionLimit", SqlDbType.Int, ParameterDirection.Output);
            sp.Parameters.Add("@assertionCount", SqlDbType.Int, ParameterDirection.Output);

            sp.Parameters.SetString("@PUID", ID);
            sp.Parameters.SetString("@email", Email);

            sp.ExecuteNonQuery();

            Email         = sp.Parameters.GetString("@email");
            Name          = sp.Parameters.GetString("@name");
            Phone         = sp.Parameters.GetString("@phone");
            CompanyName   = sp.Parameters.GetString("@companyName");
            AltPhone      = sp.Parameters.GetString("@altPhone");
            AddressLine1  = sp.Parameters.GetString("@addressLine1");
            AddressLine2  = sp.Parameters.GetString("@addressLine2");
            City          = sp.Parameters.GetString("@city");
            StateProvince = sp.Parameters.GetString("@stateProvince");
            PostalCode    = sp.Parameters.GetString("@postalCode");
            Country       = sp.Parameters.GetString("@country");
            IsoLangCode   = sp.Parameters.GetString("@isoLangCode");

            BusinessLimit  = sp.Parameters.GetInt("@businessLimit");
            BusinessCount  = sp.Parameters.GetInt("@businessCount");
            TModelLimit    = sp.Parameters.GetInt("@tModelLimit");
            TModelCount    = sp.Parameters.GetInt("@tModelCount");
            ServiceLimit   = sp.Parameters.GetInt("@serviceLimit");
            BindingLimit   = sp.Parameters.GetInt("@bindingLimit");
            AssertionLimit = sp.Parameters.GetInt("@assertionLimit");
            AssertionCount = sp.Parameters.GetInt("@assertionCount");

            Debug.Leave();
        }
        /// ****************************************************************
        ///	  public Register [static]
        /// ----------------------------------------------------------------
        ///   <summary>
        ///   </summary>
        /// ****************************************************************
        ///
        public void Register()
        {
            Debug.Enter();

            //
            // If the Name has not been populated during authentication
            // use the ID. This is needed to populate the authorizedName
            // field.
            //
            if (null == Name || 0 == Name.Length)
            {
                Name = ID;
            }

            SqlStoredProcedureAccessor sp = new SqlStoredProcedureAccessor("UI_savePublisher");

            sp.Parameters.Add("@PUID", SqlDbType.NVarChar, UDDI.Constants.Lengths.UserID);
            sp.Parameters.Add("@isoLangCode", SqlDbType.NVarChar, UDDI.Constants.Lengths.IsoLangCode);
            sp.Parameters.Add("@name", SqlDbType.NVarChar, UDDI.Constants.Lengths.Name);
            sp.Parameters.Add("@email", SqlDbType.NVarChar, UDDI.Constants.Lengths.Email);
            sp.Parameters.Add("@phone", SqlDbType.NVarChar, UDDI.Constants.Lengths.Phone);
            sp.Parameters.Add("@companyName", SqlDbType.NVarChar, UDDI.Constants.Lengths.CompanyName);
            sp.Parameters.Add("@altphone", SqlDbType.NVarChar, UDDI.Constants.Lengths.Phone);
            sp.Parameters.Add("@addressLine1", SqlDbType.NVarChar, UDDI.Constants.Lengths.AddressLine);
            sp.Parameters.Add("@addressLine2", SqlDbType.NVarChar, UDDI.Constants.Lengths.AddressLine);
            sp.Parameters.Add("@city", SqlDbType.NVarChar, UDDI.Constants.Lengths.City);
            sp.Parameters.Add("@stateProvince", SqlDbType.NVarChar, UDDI.Constants.Lengths.StateProvince);
            sp.Parameters.Add("@postalCode", SqlDbType.NVarChar, UDDI.Constants.Lengths.PostalCode);
            sp.Parameters.Add("@country", SqlDbType.NVarChar, UDDI.Constants.Lengths.Country);
            sp.Parameters.Add("@flag", SqlDbType.Int);
            sp.Parameters.Add("@tier", SqlDbType.NVarChar, UDDI.Constants.Lengths.Tier);

            sp.Parameters.SetString("@PUID", ID);
            sp.Parameters.SetString("@isoLangCode", IsoLangCode);
            sp.Parameters.SetString("@name", Name);
            sp.Parameters.SetString("@email", Email);
            sp.Parameters.SetString("@phone", Phone);
            sp.Parameters.SetString("@companyName", CompanyName);
            sp.Parameters.SetString("@altphone", AltPhone);
            sp.Parameters.SetString("@addressLine1", AddressLine1);
            sp.Parameters.SetString("@addressLine2", AddressLine2);
            sp.Parameters.SetString("@city", City);
            sp.Parameters.SetString("@stateProvince", StateProvince);
            sp.Parameters.SetString("@postalCode", PostalCode);
            sp.Parameters.SetString("@country", Country);
            sp.Parameters.SetString("@tier", Config.GetString("Publisher.DefaultTier", "2"));

            int flag = 0;

            //
            // TODO: Comments or an enumeration please
            //
            if (!TrackPassport)
            {
                flag = flag | 0x02;
            }

            if (Verified)
            {
                flag = flag | 0x01;
            }

            sp.Parameters.SetInt("@flag", flag);
            sp.ExecuteNonQuery();

            Debug.Leave();
        }