Exemplo n.º 1
0
        public async Task <int> CalculateDishPrice(ICollection <Ingredient> ingredients, int baseDishId)
        {
            var baseDish = await _baseDishService.GetBaseDishWithIngredients(baseDishId);

            var basedishIngredients = baseDish.BaseDishIngredients.Select(i => i.Ingredient).ToList();
            var addedIngredients    = ingredients.Where(i => !basedishIngredients.Select(bdi => bdi.IngredientId).Contains(i.IngredientId)).ToList();

            return(addedIngredients.Sum(ai => ai.AddExtraPrice) + baseDish.Price);
        }
Exemplo n.º 2
0
        public async Task AddDishToCart(int dishId)
        {
            var sessionCart = _session.GetString(Constants.CartSession);
            ICollection <OrderedDish> cart = (sessionCart != null)
                ? GetSessionCartList(Constants.CartSession)
                : new List <OrderedDish>();

            cart.Add(CopyBaseDishToOrderedDish(await _baseDishService.GetBaseDishWithIngredients(dishId)));
            SetSessionCartList(Constants.CartSession, cart);
        }