Example #1
0
        private static List <IPriceValue> OriginalPriceValues(this ProductContent productContent)
        {
            var validPrices =
                productContent.Prices()
                .Where(x => x.ValidFrom <= DateTime.Now && (x.ValidUntil == null || x.ValidUntil >= DateTime.Now));

            var originalPrices = new List <IPriceValue>();

            foreach (var marketPrices in validPrices.GroupBy(x => x.MarketId))
            {
                foreach (var currencyPrices in marketPrices.GroupBy(x => x.UnitPrice.Currency))
                {
                    var topPrice = currencyPrices.OrderByDescending(x => x.UnitPrice).FirstOrDefault();
                    if (topPrice == null)
                    {
                        continue;
                    }

                    originalPrices.Add(topPrice);
                }
            }

            return(originalPrices);
        }