public CustomerOrderInfoDoc GetCustomerOrderInfo(
            string PartnerName,
            string LanguageId,
            string ClientIdentity,
            string OrderNumber,
            Nullable <int> OrderSequence)
        {
            if ((PartnerName == "") || (PartnerName == null))
            {
                // test mode!
                CustomerOrderInfoDoc testres = new CustomerOrderInfoDoc();

                ArrayList aCustomerOrderList     = CustomerOrder.MakeTestData();
                ArrayList aCustomerWorkOrderList = CustomerWorkOrder.MakeTestData();
                ArrayList aDepartureList         = Departure.MakeTestData();
                ArrayList aOrderQuantitiesList   = OrderQuantities.MakeTestData();
                ArrayList aCustomerOrderRowList  = CustomerOrderRow.MakeTestData();

                testres.aCustomerOrderList     = aCustomerOrderList.ToArray(typeof(CustomerOrder)) as CustomerOrder[];
                testres.aCustomerWorkOrderList = aCustomerWorkOrderList.ToArray(typeof(CustomerWorkOrder)) as CustomerWorkOrder[];
                testres.aDepartureList         = aDepartureList.ToArray(typeof(Departure)) as Departure[];
                testres.aOrderQuantitiesList   = aOrderQuantitiesList.ToArray(typeof(OrderQuantities)) as OrderQuantities[];
                testres.aCustomerOrderRowList  = aCustomerOrderRowList.ToArray(typeof(CustomerOrderRow)) as CustomerOrderRow[];
                return(testres);
            }

            CustomerOrderInfoDoc res = new CustomerOrderInfoDoc();

            using (DBHelper dbHelper = new DBHelper(PartnerName))
            {
                try
                {
                    WebServicesQuery pkg = new WebServicesQuery(dbHelper.GetDataBase());

                    IDataReader aCustomerOrderRdr     = null;
                    IDataReader aCustomerWorkOrderRdr = null;
                    IDataReader aDepartureRdr         = null;
                    IDataReader aOrderQuantitiesRdr   = null;
                    IDataReader aCustomerOrderRowRdr  = null;

                    pkg.Getcustomerorderinfo(ClientIdentity,
                                             OrderNumber,
                                             OrderSequence,
                                             LanguageId,
                                             out aCustomerOrderRdr,
                                             out aCustomerWorkOrderRdr,
                                             out aDepartureRdr,
                                             out aOrderQuantitiesRdr,
                                             out aCustomerOrderRowRdr);

                    ArrayList aCustomerOrderList     = CustomerOrder.Read(aCustomerOrderRdr);
                    ArrayList aCustomerWorkOrderList = CustomerWorkOrder.Read(aCustomerWorkOrderRdr);
                    ArrayList aDepartureList         = Departure.Read(aDepartureRdr);
                    ArrayList aOrderQuantitiesList   = OrderQuantities.Read(aOrderQuantitiesRdr);
                    ArrayList aCustomerOrderRowList  = CustomerOrderRow.Read(aCustomerOrderRowRdr);

                    res.aCustomerOrderList     = aCustomerOrderList.ToArray(typeof(CustomerOrder)) as CustomerOrder[];
                    res.aCustomerWorkOrderList = aCustomerWorkOrderList.ToArray(typeof(CustomerWorkOrder)) as CustomerWorkOrder[];
                    res.aDepartureList         = aDepartureList.ToArray(typeof(Departure)) as Departure[];
                    res.aOrderQuantitiesList   = aOrderQuantitiesList.ToArray(typeof(OrderQuantities)) as OrderQuantities[];
                    res.aCustomerOrderRowList  = aCustomerOrderRowList.ToArray(typeof(CustomerOrderRow)) as CustomerOrderRow[];

                    dbHelper.GetDataBase().Commit();
                }
                catch (Exception e)
                {
                    try
                    {
                        dbHelper.GetDataBase().Rollback();
                    }
                    catch (Exception)
                    { }
                    Exception InternalError = new Exception("DataError: Error processing data", e);
                    throw (InternalError);
                }
            }

            return(res);
        }