private static async Task AddCartItem(CartEntity cart, IPromotionsApplayer promotionsApplayer, CartItemEntity cartItem) { var existingCartItem = cart.Items.FirstOrDefault(ci => ci.Id == cartItem.Id); if (cartItem.IsWeighable) { cartItem.Quantity = (cartItem.Quantity / cartItem.QuantityInterval) * cartItem.QuantityInterval; } if (existingCartItem == null) { cart.Items.Add(cartItem); } else { existingCartItem.Quantity = Math.Max(existingCartItem.Quantity, cartItem.Quantity); } await promotionsApplayer.ApplayOnItem(cart, cartItem); }