public static ReturnValues GetSimpleSuccessReturnValues(String val)
        {
            ReturnValues rvs = new ReturnValues();
            ReturnValue  rv  = new ReturnValue(ReturnCodes.SUCCESS);

            rv.SetValue(val);
            rvs.AddReturnValue(rv);
            return(rvs);
        }
        public static ReturnValues GetSimpleReturnValues(int code, String text)
        {
            ReturnValues rvs = new ReturnValues();
            ReturnValue  rv  = new ReturnValue(code);

            rv.SetText(text);
            rvs.AddReturnValue(rv);
            return(rvs);
        }
        public static void PrepareQueryRequest(
            string objectType,
            IList arFieldList,
            IList arQueryList,
            string strAttribute,
            int maxrows,
            bool bPicklist,
            string strBooleanOp,
            bool OnlyUniversalGroups,  // applies to AD groups only
            ref ReturnValues rvsQual,
            ref ReturnValues rvsAttr
            )
        {
            ReturnValue rvtemp = new ReturnValue(0);

            // Pass in object type
            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_OBJECT_TYPE);
            rvtemp.SetValue(objectType);
            rvsAttr.AddReturnValue(rvtemp);

            if (OnlyUniversalGroups) // applies to AD groups only
            {
                rvtemp = new ReturnValue(0);
                rvtemp.SetName(Parameter.QUERY_GROUP_TYPE);
                rvtemp.SetValue(((int)ADGroupScopeEnum.Universal).ToString());
                rvsAttr.AddReturnValue(rvtemp);
            }

            // Load optional secondary attributes to be returned
            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_FIELDLIST);
            rvtemp.SetList(arFieldList);
            rvsAttr.AddReturnValue(rvtemp);

            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_PRIMARYATTRIBUTE);
            rvtemp.SetValue(strAttribute);
            rvsAttr.AddReturnValue(rvtemp);

            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_FILTERBOOLEANOP);
            rvtemp.SetValue(strBooleanOp);
            rvsAttr.AddReturnValue(rvtemp);

            // Load picklist mode
            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_PICKLISTMODE);
            rvtemp.SetType(ReturnValueTypes.BOOLEAN);
            if (bPicklist)
            {
                rvtemp.SetValue("true");
            }
            else
            {
                rvtemp.SetValue("false");
            }
            rvsAttr.AddReturnValue(rvtemp);

            // Load query filter
            IList arFieldName = new ArrayList();
            IList arOperator  = new ArrayList();
            IList arValue     = new ArrayList();
            IList arFieldType = new ArrayList();

            foreach (QueryClause qi in arQueryList)
            {
                arFieldName.Add(qi.GetAttribute());
                arFieldType.Add(qi.GetAttributeType());
                arOperator.Add(qi.GetOperator());
                arValue.Add(qi.GetValue());
            }

            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_FILTERFIELDLIST);
            rvtemp.SetList(arFieldName);
            rvsQual.AddReturnValue(rvtemp);

            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_FILTERFIELDTYPELIST);
            rvtemp.SetList(arFieldType);
            rvsQual.AddReturnValue(rvtemp);

            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_FILTEROPERATORLIST);
            rvtemp.SetList(arOperator);
            rvsQual.AddReturnValue(rvtemp);

            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_FILTERVALUELIST);
            rvtemp.SetList(arValue);
            rvsQual.AddReturnValue(rvtemp);

            rvtemp = new ReturnValue(0);
            rvtemp.SetName(Parameter.QUERY_MAXROWS);
            rvtemp.SetType(ReturnValueTypes.STRING);
            rvtemp.SetValue(maxrows.ToString());
            rvsQual.AddReturnValue(rvtemp);
        }