private int UsageOfOffer(ScannedSku scannedSku) { var offer = _specialOffers.FirstOrDefault(o => o.Sku == scannedSku.Sku); double s = scannedSku.NumberOfScans / offer.Quantity; return((int)Math.Floor(s)); }
private decimal GetOfferPrice(ScannedSku scannedSku) { if (!SkuHasOffer(scannedSku)) { return(0m); } var offer = _specialOffers.FirstOrDefault(o => o.Sku == scannedSku.Sku); var numberOfTimesOfferUsed = UsageOfOffer(scannedSku); return(numberOfTimesOfferUsed * offer.OfferPrice); }
private int QuantityEligibleForOffer(ScannedSku scannedSku) { if (!SkuHasOffer(scannedSku)) { return(0m); } var offer = _specialOffers.FirstOrDefault(o => o.Sku == scannedSku.Sku); return(UsageOfOffer(scannedSku) * offer.Quantity); }
private bool SkuHasOffer(ScannedSku scannedSku) => _specialOffers.FirstOrDefault(o => o.Sku == scannedSku.Sku) != null;