示例#1
0
        /// <summary>
        /// Convenience function for running tests. Creates an object and automatically adds it to the queue for deleting after tests finish.
        /// A PriceRule is created then a PriceRuleDiscountCode is assigned to it
        /// </summary>
        public async Task <PriceRuleDiscountCode> Create(string code, bool skipAddToCreatedList = false)
        {
            var ruleObj = await CreatePriceRule(skipAddToCreatedList);

            var discountCode = new PriceRuleDiscountCode()
            {
                Code        = code,
                PriceRuleId = ruleObj.Id.Value,
            };

            return(await CreateDiscountCode(ruleObj, discountCode, skipAddToCreatedList));
        }
示例#2
0
        private async Task <PriceRuleDiscountCode> CreateDiscountCode(PriceRule rule, PriceRuleDiscountCode discountCode, bool skipAddToCreatedList)
        {
            var obj = await DiscountCodeService.CreateAsync(rule.Id.Value, discountCode);

            if (!skipAddToCreatedList)
            {
                CreatedDiscountCodes.Add(obj);
            }

            return(obj);
        }
示例#3
0
        /// <summary>
        /// Updates the given object.
        /// </summary>
        /// <param name="priceRuleId">The Id of the Price Rule being updated.</param>
        /// <param name="code">The code being updated.</param>
        /// <param name="cancellationToken">Cancellation Token</param>
        public virtual async Task <PriceRuleDiscountCode> UpdateAsync(long priceRuleId, PriceRuleDiscountCode code, CancellationToken cancellationToken = default)
        {
            var req     = PrepareRequest($"price_rules/{priceRuleId}/discount_codes/{code.Id.Value}.json");
            var content = new JsonContent(new
            {
                discount_code = code
            });

            var response = await ExecuteRequestAsync <PriceRuleDiscountCode>(req, HttpMethod.Put, cancellationToken, content, "discount_code");

            return(response.Result);
        }