Sage.Integration.Northwind.Adapter.Services.PricingServices.GetCommodityPriceData C# (CSharp) Method

GetCommodityPriceData() private method

private GetCommodityPriceData ( CommodityIdentity commodityIdentities ) : ICommodityPrice[]
commodityIdentities CommodityIdentity
return ICommodityPrice[]
        private ICommodityPrice[] GetCommodityPriceData(CommodityIdentity[] commodityIdentities)
        {
            // Get pricing data for the products

            // adapter for database access
            Product product = new Product();

            List<string> nonEmptyLocalIds = new List<string>();
            foreach (CommodityIdentity prodId in commodityIdentities)
            {
                if (!prodId.IsEmpty())
                    nonEmptyLocalIds.Add(prodId.CommodityId);
            }

            // database request
            ProductPriceDocument[] dataDocuments = product.GetProductPrices(nonEmptyLocalIds.ToArray(), _config);

            // create collection of commodity prices
            List<ICommodityPrice> commodityPrices = new List<ICommodityPrice>();

            foreach (CommodityIdentity identity in commodityIdentities)
            {
                if (identity.IsEmpty())
                    commodityPrices.Add(CommodityPriceData.Empty);
                else
                {
                    // get the corresponding db document and add a new CommodityPriceData to list
                    bool priceFound = false;
                    foreach (ProductPriceDocument data in dataDocuments)
                    {
                        if (data.ProductId.ToString() == identity.CommodityId)
                        {
                            commodityPrices.Add(new CommodityPriceData(identity, data));
                            priceFound = true;
                            break;
                        }
                    }

                    if (!priceFound)
                        commodityPrices.Add(CommodityPriceData.Empty);
                }
            }

            return commodityPrices.ToArray();
        }