public async Task ApplyCouponTheCart(Guid id, ApplyCouponRequest request)
        {
            var json    = JsonConvert.SerializeObject(request);
            var content = new StringContent(json, Encoding.UTF8, "application/json");

            await client.PostAsync(new Uri($"/cart/id/{id}/apply-coupon", UriKind.Relative), content);
        }
Example #2
0
        public async Task <IActionResult> ApplyCouponAsync(ApplyCouponRequest model, CancellationToken token)
        {
            try
            {
                var userId  = _userManager.GetLongUserId(User);
                var command = new ApplyCouponCommand(model.Coupon, userId, model.TutorId);
                await _commandBus.DispatchAsync(command, token);

                return(Ok(new
                {
                    Price = command.NewPrice
                }));
            }
            catch (ArgumentException)
            {
                return(BadRequest("Invalid Coupon"));
            }
            catch (DuplicateRowException)
            {
                return(BadRequest("This coupon already in use"));
            }
        }