コード例 #1
0
        public virtual async Task <decimal> GetTotalSumAsync(int sessionId)
        {
            var existingBasket = await _basketRepository.GetBasketBySessionIdAsync(sessionId);

            await _cartPriceRuleService.ApplyPriceRulesAsync(existingBasket);

            var totalSum    = existingBasket.BasketItems.Sum(basketItem => basketItem.Product.Price * basketItem.Quantity);
            var discountSum = existingBasket.Discounts.Sum(discount => discount.Price);

            existingBasket.TotalSum = totalSum - discountSum;
            _basketLogger.LogBasket(existingBasket);
            return(existingBasket.TotalSum);
        }