/*        private void loadItems()
 *      {
 *          string request = "ItemQueryRq";
 *          connectToQB();
 *          int count = getCount(request);
 *          IMsgSetResponse responseMsgSet = processRequestFromQB(buildItemQueryRq(new string[] { "FullName" }, null));
 *          string[,] retVal = parseItemQueryRs(responseMsgSet, count, 1);
 *          disconnectFromQB();
 *          string[] itemList = getItemFullNames(retVal);
 *          fillComboBox(comboBox_Item1, itemList);
 *          fillComboBox(comboBox_Item2, itemList);
 *          fillComboBox(comboBox_Item3, itemList);
 *          fillComboBox(comboBox_Item4, itemList);
 *          fillComboBox(comboBox_Item5, itemList);
 *      }
 *
 *      private string[] getItemFullNames(string[,] retVal)
 *      {
 *          //retVal[countOfRows, arraySize]
 *          //arraySize is 3 for FullName, Desc, Price but in this case 1 for FullName only
 *          int countOfRows = retVal.GetUpperBound(0);
 *          string[] itemList = new string[countOfRows];
 *          for (int i = 0; i < countOfRows; i++)
 *          {
 *              itemList[i] = retVal[i, 0];
 *          }
 *          return itemList;
 *      }
 *
 *      private void loadTerms()
 *      {
 *          string request = "TermsQueryRq";
 *          connectToQB();
 *          int count = getCount(request);
 *          IMsgSetResponse responseMsgSet = processRequestFromQB(buildTermsQueryRq());
 *          string[] termsList = parseTermsQueryRs(responseMsgSet, count);
 *          disconnectFromQB();
 *          fillComboBox(this.comboBox_Terms, termsList);
 *      }
 *
 *      private void loadSalesTaxCodes()
 *      {
 *          string request = "SalesTaxCodeQueryRq";
 *          connectToQB();
 *          int count = getCount(request);
 *          IMsgSetResponse responseMsgSet = processRequestFromQB(buildSalesTaxCodeQueryRq());
 *          string[] salesTaxCodeList = parseSalesTaxCodeQueryRs(responseMsgSet, count);
 *          disconnectFromQB();
 *          fillComboBox(this.comboBox_Tax1, salesTaxCodeList);
 *          fillComboBox(this.comboBox_Tax2, salesTaxCodeList);
 *          fillComboBox(this.comboBox_Tax3, salesTaxCodeList);
 *          fillComboBox(this.comboBox_Tax4, salesTaxCodeList);
 *          fillComboBox(this.comboBox_Tax5, salesTaxCodeList);
 *      }
 *
 *      private void loadCustomerMsg()
 *      {
 *          string request = "CustomerMsgQueryRq";
 *          connectToQB();
 *          int count = getCount(request);
 *          IMsgSetResponse responseMsgSet = processRequestFromQB(buildCustomerMsgQueryRq(new string[] { "Name" }, null));
 *          string[] customerMsgList = parseCustomerMsgQueryRs(responseMsgSet, count);
 *          disconnectFromQB();
 *          fillComboBox(comboBox_CustomerMessage, customerMsgList);
 *      }
 *
 *      private string getBillShipTo(string customerName, string billOrShip)
 *      {
 *          connectToQB();
 *          IMsgSetResponse responseMsgSet = processRequestFromQB(buildCustomerQueryRq(new string[] { billOrShip }, customerName));
 *          string[] billShipTo = parseCustomerQueryRs(responseMsgSet, 1);
 *          if (billShipTo[0] == null) billShipTo[0] = "";
 *          disconnectFromQB();
 *          return billShipTo[0];
 *      }
 *
 *      private string getCurrencyCode(string customerName)
 *      {
 *          connectToQB();
 *          IMsgSetResponse responseMsgSet = processRequestFromQB(buildCustomerQueryRq(new string[] { "CurrencyRef" }, customerName));
 *          string[] currencyCode = parseCustomerQueryRs(responseMsgSet, 1);
 *          disconnectFromQB();
 *          return currencyCode[0];
 *      }
 *
 *      private string getExchangeRate(string currencyName)
 *      {
 *          connectToQB();
 *          IMsgSetResponse responseMsgSet = processRequestFromQB(buildCurrencyQueryRq(currencyName));
 *          string[] exrate = parseCurrencyQueryRs(responseMsgSet, 1);
 *          disconnectFromQB();
 *          if (exrate[0] == null || exrate[0] == "") exrate[0] = "1.0";
 *          return exrate[0];
 *      }
 *
 *      // REQUEST BUILDING
 *      private IMsgSetRequest buildPreferencesQueryRq(string[] includeRetElement, string fullName)
 *      {
 *          IMsgSetRequest requestMsgSet = sessionManager.getMsgSetRequest();
 *          requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;
 *          IPreferencesQuery prefQuery = requestMsgSet.AppendPreferencesQueryRq();
 *          for (int x = 0; x < includeRetElement.Length; x++)
 *          {
 *              prefQuery.IncludeRetElementList.Add(includeRetElement[x]);
 *          }
 *          return requestMsgSet;
 *      }
 */
        private IMsgSetRequest buildDataCountQuery(string request)
        {
            IMsgSetRequest requestMsgSet = sessionManager.getMsgSetRequest();

            requestMsgSet.Attributes.OnError = ENRqOnError.roeContinue;
            switch (request)
            {
            case "CustomerQueryRq":
                ICustomerQuery custQuery = requestMsgSet.AppendCustomerQueryRq();
                custQuery.metaData.SetValue(ENmetaData.mdMetaDataOnly);
                break;

            case "ItemQueryRq":
                IItemQuery itemQuery = requestMsgSet.AppendItemQueryRq();
                itemQuery.metaData.SetValue(ENmetaData.mdMetaDataOnly);
                break;

            case "TermsQueryRq":
                ITermsQuery termsQuery = requestMsgSet.AppendTermsQueryRq();
                termsQuery.metaData.SetValue(ENmetaData.mdMetaDataOnly);
                break;

            case "SalesTaxCodeQueryRq":
                ISalesTaxCodeQuery salesTaxQuery = requestMsgSet.AppendSalesTaxCodeQueryRq();
                salesTaxQuery.metaData.SetValue(ENmetaData.mdMetaDataOnly);
                break;

            case "CustomerMsgQueryRq":
                ICustomerMsgQuery custMsgQuery = requestMsgSet.AppendCustomerMsgQueryRq();
                custMsgQuery.metaData.SetValue(ENmetaData.mdMetaDataOnly);
                break;

            default:
                break;
            }
            return(requestMsgSet);
        }