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()); }
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); }