public virtual async Task <IHttpActionResult> UpdateRecurringOrderTemplateLineItemQuantity(UpdateRecurringOrderLineItemQuantityRequest request)
        {
            if (request == null)
            {
                return(BadRequest("Missing Request Body"));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var param = new UpdateRecurringOrderTemplateLineItemQuantityParam
            {
                RecurringLineItemId = request.RecurringLineItemId,
                Quantity            = request.Quantity,
                ScopeId             = ComposerContext.Scope,
                CustomerId          = ComposerContext.CustomerId,
                CultureInfo         = ComposerContext.CultureInfo,
                BaseUrl             = RequestUtils.GetBaseUrl(Request).ToString()
            };

            var results = await RecurringOrderTemplatesViewService.UpdateRecurringOrderTemplateLineItemQuantityAsync(param).ConfigureAwait(false);

            return(Ok(results));
        }
コード例 #2
0
        public virtual async Task <ListOfRecurringOrderLineItems> UpdateRecurringOrderTemplateLineItemQuantityAsync(UpdateRecurringOrderTemplateLineItemQuantityParam param)
        {
            var lineitems = await GetRecurringOrderTemplates(param.ScopeId, param.CustomerId).ConfigureAwait(false);

            var lineitem = GetRecurringOrderLineItemFromTemplates(lineitems, param.RecurringLineItemId);

            if (lineitem != null)
            {
                lineitem.Quantity = param.Quantity;

                var request = new AddOrUpdateRecurringOrderLineItemsRequest()
                {
                    CustomerId = param.CustomerId,
                    ScopeId    = param.ScopeId,
                    LineItems  = lineitems.RecurringOrderLineItems,
                    MustApplyUpdatesToRecurringCart = false
                };

                return(await OvertureClient.SendAsync(request));
            }

            return(new ListOfRecurringOrderLineItems());
        }
コード例 #3
0
        public virtual async Task <RecurringOrderTemplatesViewModel> UpdateRecurringOrderTemplateLineItemQuantityAsync(UpdateRecurringOrderTemplateLineItemQuantityParam param)
        {
            if (!RecurringOrdersSettings.Enabled)
            {
                return(new RecurringOrderTemplatesViewModel());
            }

            if (param == null)
            {
                throw new ArgumentNullException(nameof(param), ArgumentNullMessageFormatter.FormatErrorMessage(nameof(param)));
            }

            //TODO: To be determined if we update the carts

            var listOfRecurringOrderLineItems = await RecurringOrderRepository.UpdateRecurringOrderTemplateLineItemQuantityAsync(param).ConfigureAwait(false);

            return(await CreateTemplatesViewModelAsync(new CreateRecurringOrderTemplatesViewModelParam
            {
                ListOfRecurringOrderLineItems = listOfRecurringOrderLineItems,
                CultureInfo = param.CultureInfo,
                BaseUrl = param.BaseUrl,
                ScopeId = param.ScopeId,
                CustomerId = param.CustomerId
            }));
        }