public ISyncWSResult findProductsByDescription(Database database, ISyncWSParameter dataParameter)
        {
            productSearchParameters productSearchParameters = (productSearchParameters)dataParameter;

            WebServices3pl pkg = new WebServices3pl(database);

            productSearchResult res = pkg.Findproductbydescription(dataParameter, productSearchParameters.clientId, productSearchParameters.searchString);

            Details(res.list, pkg, dataParameter, productSearchParameters);

            return((searchResult)res);
        }
        private void Details(product[] list, WebServices3pl pkg, ISyncWSParameter dataParameter, productSearchParameters productSearchParameters)
        {
            if (dataParameter.GetReturnDetails())
            {
                foreach (product item in list)
                {
                    productSearchParameters subParams = new productSearchParameters();
                    subParams.firstResult = null;
                    subParams.maxResult   = null;

                    item.barcodes = pkg.Findbarcodebyproduct(subParams, productSearchParameters.clientId, item.partNo);

                    vendorPartNos[] vendorPartNo = pkg.Getvendorpartno(subParams, productSearchParameters.clientId, item.partNo);

                    // build vendor part no string
                    item.vendPartNo = "";

                    foreach (vendorPartNos vpn in vendorPartNo)
                    {
                        if (!String.IsNullOrEmpty(vpn.vendorPartNo))
                        {
                            if (item.vendPartNo != "")
                            {
                                item.vendPartNo += ", ";
                            }

                            item.vendPartNo += vpn.vendorPartNo;
                        }
                    }

                    if (String.IsNullOrEmpty(item.vendPartNo))
                    {
                        item.vendPartNo = null;
                    }

                    // build product availability
                    if (!String.IsNullOrEmpty(productSearchParameters.stockNo))
                    {
                        productAvails[] productAvail = pkg.Getproductavail(subParams, productSearchParameters.clientId, productSearchParameters.stockNo, item.partNo);
                        int             qty          = 0;
                        foreach (productAvails pa in productAvail)
                        {
                            if (pa.productAvail != null)
                            {
                                qty += (int)pa.productAvail;
                            }
                        }
                        item.availability = qty;
                    }
                }
            }
        }
        public productSearchResult findProductsByDescription(productSearchParameters productSearchParameters)
        {
            ProductSearch p = new ProductSearch();

            return((productSearchResult)PackageHelper.GetResult(productSearchParameters, p.findProductsByDescription, p.findProducts));
        }