コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        public FileContentResult GetImage(int pigeonId)
        {
            Pigeon pigeon = repository.GetPigeon(pigeonId);



            if (pigeon != null)
            {
                return(File(pigeon.ImageData, pigeon.ImageMimeType));
            }
            else
            {
                return(null);
            }
        }
コード例 #4
0
        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));
        }