/// <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)); }
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); }
/// <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); }