public decimal CalculatePrice(Cart cart, CartLine line) { int quant = line.Quantity; int i = cart.Lines.Count(); int j = cart.Lines.FindIndex(x => x.PigeonId == line.PigeonId); decimal CurrentPigeonPrice = pigrepo.GetPigeon(cart.Lines[j].PigeonId).BasicPrice; if (i > 2 && (1 + j) % 3 == 0) { decimal FirstPigeonPrice = pigrepo.GetPigeon(cart.Lines[j - 2].PigeonId).BasicPrice; decimal SecondPigeonPrice = pigrepo.GetPigeon(cart.Lines[j - 1].PigeonId).BasicPrice; if (FirstPigeonPrice > CurrentPigeonPrice && SecondPigeonPrice > CurrentPigeonPrice) { return(CurrentPigeonPrice / 2 + (CurrentPigeonPrice * (quant - 1))); } else { return(CurrentPigeonPrice * quant); } } else { return(CurrentPigeonPrice * quant); } }
public decimal CalculatePrice(Cart cart, CartLine line) { int quant = line.Quantity; decimal Price = pigrepo.GetPigeon(line.PigeonId).BasicPrice; if (quant > 1) { return(Price + ((Price / 2) * (quant - 1))); } else { return(Price); } }
public FileContentResult GetImage(int pigeonId) { Pigeon pigeon = repository.GetPigeon(pigeonId); if (pigeon != null) { return(File(pigeon.ImageData, pigeon.ImageMimeType)); } else { return(null); } }
public ViewResult Index(Cart cart, string returnUrl) { CartIndexViewModel indexViewModel = new CartIndexViewModel(); indexViewModel.Cart = cart; indexViewModel.ReturnUrl = returnUrl; indexViewModel.PigeonsInCart = cart.Lines.Select(x => new PigeonInCartDTO(x, repository.GetPigeon(x.PigeonId))).ToList(); foreach (var pig in indexViewModel.PigeonsInCart) { pig.Price = priceCalcFactory.Create(configuration.ChosenStrategyName).CalculatePrice(cart, cart.Lines.Find(x => x.PigeonId == pig.Pigeon.PigeonId)); } return(View(indexViewModel)); }