public async Task <ActionResult> AddCartCoupon(string couponCode) { EnsureThatCartExist(); //Need lock to prevent concurrent access to same cart using (await AsyncLock.GetLockByKey(GetAsyncLockCartKey(WorkContext.CurrentCart)).LockAsync()) { await _cartBuilder.AddCoupon(couponCode).SaveAsync(); } return(Json(_cartBuilder.Cart.Coupon)); }