Exemple #1
0
        public virtual async Task <IHttpActionResult> UpdateLineItem(UpdateRecurringCartLineItemRequest request)
        {
            if (request == null)
            {
                return(BadRequest("Missing Request Body"));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var vm = await RecurringOrderCartsService.UpdateLineItemAsync(new UpdateLineItemParam
            {
                ScopeId     = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                CustomerId  = ComposerContext.CustomerId,
                LineItemId  = new Guid(request.LineItemId),
                CartName    = request.CartName,
                Quantity    = request.Quantity.GetValueOrDefault(),
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString(),
                RecurringOrderFrequencyName = request.RecurringOrderFrequencyName,
                RecurringOrderProgramName   = request.RecurringOrderProgramName
            }).ConfigureAwait(false);;

            return(Ok(vm));
        }
Exemple #2
0
        public virtual async Task <IHttpActionResult> UpdateRecurringOrderCartAddress([FromBody] UpdateRecurringOrderCartAddressRequest request)
        {
            if (request == null)
            {
                return(BadRequest("Missing Request Body"));
            }
            if (request.ShippingAddressId == null)
            {
                return(BadRequest("Missing Request Body"));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var param = new UpdateRecurringOrderCartShippingAddressParam()
            {
                CultureInfo                  = ComposerContext.CultureInfo,
                ScopeId                      = ComposerContext.Scope,
                CartName                     = request.cartName,
                CustomerId                   = ComposerContext.CustomerId,
                ShippingAddressId            = request.ShippingAddressId.ToGuid(),
                BaseUrl                      = RequestUtils.GetBaseUrl(Request).ToString(),
                UseSameForShippingAndBilling = request.UseSameForShippingAndBilling
            };

            if (!string.IsNullOrEmpty(request.BillingAddressId))
            {
                param.BillingAddressId = request.BillingAddressId.ToGuid();
            }

            var results = await RecurringOrderCartsService.UpdateRecurringOrderCartShippingAddressAsync(param).ConfigureAwait(false);

            return(Ok(results));
        }
Exemple #3
0
        public virtual async Task <IHttpActionResult> GetPastOrders()
        {
            var viewModel = await RecurringOrderCartsService.GetLightRecurringOrderCartListViewModelAsync(new GetLightRecurringOrderCartListViewModelParam
            {
                CultureInfo = ComposerContext.CultureInfo,
                CustomerId  = ComposerContext.CustomerId,
                Scope       = ComposerContext.Scope,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString()
            }).ConfigureAwait(false);

            return(Ok(viewModel));
        }
Exemple #4
0
        public async Task <IHttpActionResult> GetRecurringCart([FromBody] GetRecurringCartRequest request)
        {
            if (request == null)
            {
                return(BadRequest("Missing Request Body"));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var vm = await RecurringOrderCartsService.GetRecurringOrderCartViewModelAsync(new GetRecurringOrderCartViewModelParam
            {
                CartName    = request.Name,
                CustomerId  = ComposerContext.CustomerId,
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString()
            }).ConfigureAwait(false);

            return(Ok(vm));
        }
Exemple #5
0
        public virtual async Task <IHttpActionResult> RemoveLineItem(RemoveRecurringCartLineItemRequest request)
        {
            if (request == null)
            {
                return(BadRequest("Missing Request Body"));
            }
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var vm = await RecurringOrderCartsService.RemoveLineItemAsync(new RemoveRecurringCartLineItemParam
            {
                Scope       = ComposerContext.Scope,
                CultureInfo = ComposerContext.CultureInfo,
                CustomerId  = ComposerContext.CustomerId,
                LineItemId  = new Guid(request.LineItemId),
                CartName    = request.CartName,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString()
            }).ConfigureAwait(false);

            return(Ok(vm));
        }
Exemple #6
0
        public virtual async Task <IHttpActionResult> GetRecurringOrderCartsByUser()
        {
            //This call manages products/variants that have been deleted in templates.
            //When cleaning those templates, it should clean the carts too.
            //In most cases, generating the templates is not a big load, if it's a problem, create a new call in
            //RecurringOrderTemplateViewModelFactory to only check templates are fine and clean up if not.
            await RecurringOrderTemplatesService.GetRecurringOrderTemplatesViewModelAsync(new GetRecurringOrderTemplatesParam
            {
                Scope       = ComposerContext.Scope,
                CustomerId  = ComposerContext.CustomerId,
                CultureInfo = ComposerContext.CultureInfo,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString()
            }).ConfigureAwait(false);

            var results = await RecurringOrderCartsService.GetRecurringOrderCartListViewModelAsync(new GetRecurringOrderCartsViewModelParam
            {
                Scope       = ComposerContext.Scope,
                CustomerId  = ComposerContext.CustomerId,
                CultureInfo = ComposerContext.CultureInfo,
                BaseUrl     = RequestUtils.GetBaseUrl(Request).ToString()
            }).ConfigureAwait(false);

            return(Ok(results));
        }