Ejemplo n.º 1
0
        /// <summary>
        /// Returns a party name based on a lookup of business identities contained within business profiles.
        /// </summary>
        public string GetPartyFromAlias(string AliasName, string AliasQualifier, string AliasValue, Boolean ThrowExceptionIfNotFound)
        {
            string party = "";

            try
            {
                SqlConnection connection      = new SqlConnection(StaticHelpers.GetMgmtDBConnectionString());
                SqlCommand    partyResolveCMD = new SqlCommand("admsvr_GetPartyByAliasNameValue", connection);
                partyResolveCMD.CommandType = CommandType.StoredProcedure;

                if (AliasName.Length > 256)
                {
                    throw new ArgumentException("Length of the party alias name exceed 256 characters");
                }
                SqlParameter param = partyResolveCMD.Parameters.Add("@nvcAliasName", SqlDbType.NVarChar, 256);
                param.Value = AliasName;

                if (AliasQualifier.Length > 64)
                {
                    throw new ArgumentException("Length of the party alias qualifier exceeds 64 characters");
                }
                param       = partyResolveCMD.Parameters.Add("@nvcAliasQualifier", SqlDbType.NVarChar, 64);
                param.Value = AliasQualifier;

                if (AliasValue.Length > 256)
                {
                    throw new ArgumentException("Length of the party alias value exceeds 256 characters");
                }
                param       = partyResolveCMD.Parameters.Add("@nvcAliasValue", SqlDbType.NVarChar, 256);
                param.Value = AliasValue;

                param           = partyResolveCMD.Parameters.Add("@nvcSID", SqlDbType.NVarChar, 256);
                param.Direction = ParameterDirection.Output;
                param.Value     = string.Empty;

                param           = partyResolveCMD.Parameters.Add("@nvcName", SqlDbType.NVarChar, 256);
                param.Direction = ParameterDirection.Output;
                param.Value     = string.Empty;

                connection.Open();
                SqlDataReader reader = partyResolveCMD.ExecuteReader();

                party = partyResolveCMD.Parameters["@nvcName"].Value.ToString();
                reader.Close();
                connection.Close();

                if (String.IsNullOrEmpty(party) && ThrowExceptionIfNotFound)
                {
                    Exception e = new Exception("Unable to locate a party with an alias name of " + AliasName + ", an alias qualifier of " + AliasQualifier + ", and an alias value of " + AliasValue + ".");
                    base.SetException(e);
                }
            }
            catch (System.Runtime.InteropServices.COMException ex)
            {
                base.SetException(new Exception("An exception was encountered while looking up a party with an alias name of " + AliasName + ", an alias qualifier of " + AliasQualifier + ", and an alias value of " + AliasValue +
                                                ".  This could potentially be a SQL permissions issue on the admsvr_GetPartyByAliasNameValue stored procedure in the BizTalk Management database or possibly lack of WMI permissions." +
                                                "See http://social.msdn.microsoft.com/Forums/en-US/e5b00132-8d05-47a0-8a4c-073429b4c8ad/failed-with-exception-syntax-error-or-access-violation for hints.  Exception details - " + ex.Message, ex));
            }
            catch (Exception e)
            {
                base.SetException(new Exception("An exception was encountered while looking up a party with an alias name of " + AliasName + ", an alias qualifier of " + AliasQualifier + ", and an alias value of " + AliasValue + " - " + e.Message, e));
            }

            return(party);
        }