Ejemplo n.º 1
0
        public virtual async Task <ListOfRecurringOrderLineItems> UpdateRecurringOrderTemplateLineItemAsync(UpdateRecurringOrderTemplateLineItemParam param)
        {
            var lineitems = await GetRecurringOrderTemplates(param.ScopeId, param.CustomerId).ConfigureAwait(false);

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

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

                var nextOccurenceWithTime = lineitem.NextOccurence;
                var newDate = new DateTime(param.NextOccurence.Year, param.NextOccurence.Month, param.NextOccurence.Day,
                                           nextOccurenceWithTime.Hour, nextOccurenceWithTime.Minute, nextOccurenceWithTime.Second, DateTimeKind.Utc);

                lineitem.NextOccurence     = newDate;
                lineitem.ShippingAddressId = param.ShippingAddressId.ToGuid();
                lineitem.BillingAddressId  = param.BillingAddressId.ToGuid();
                lineitem.PaymentMethodId   = param.PaymentMethodId.ToGuid();

                lineitem.ShippingProviderId    = param.ShippingProviderId.ToGuid();
                lineitem.FulfillmentMethodName = param.ShippingMethodName;

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

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

            return(new ListOfRecurringOrderLineItems());
        }
Ejemplo n.º 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());
        }