Exemplo n.º 1
0
        public List <Offer> GetOffersToApply(Checkout checkout)
        {
            var checkoutItemsStringList = checkout.CheckoutItems.Select(p => p.Name);

            return(_database.Offers.Where(o =>
                                          checkout.CheckoutItems.Select(p => p.Name).Contains(o.TriggerCheckoutItem.Name) &&
                                          o.ValidTo >= _dateRepository.UtcNow() &&
                                          o.ValidFrom <= _dateRepository.UtcNow())
                   .ToList());
        }
Exemplo n.º 2
0
        public Checkout ProcessCheckoutItems(string[] checkoutItems)
        {
            var checkout = new Checkout();

            checkout.Timestamp     = _dateRepository.UtcNow();
            checkout.CheckoutItems = new List <CheckoutItem>();


            if (checkoutItems == null)
            {
                return(checkout);
            }

            foreach (var checkoutItem in checkoutItems)
            {
                var itemFromDB = _database.CheckoutItems.FirstOrDefault(o => o.Name == checkoutItem);

                if (itemFromDB != null)
                {
                    checkout.CheckoutItems.Add(itemFromDB);
                }
                else
                {
                    checkout.Errors.Add(new KeyValuePair <string, string>("Item not found in DB", checkoutItem));
                }
            }

            return(checkout);
        }