Esempio 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 newDate = param.NextOccurence;
                var nextOccurenceWithTime = lineitem.NextOccurence;
                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());
        }
Esempio n. 2
0
        public virtual async Task <RecurringOrderTemplatesViewModel> UpdateRecurringOrderTemplateLineItemAsync(UpdateRecurringOrderTemplateLineItemParam param)
        {
            if (!RecurringOrdersSettings.Enabled)
            {
                return(new RecurringOrderTemplatesViewModel());
            }

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

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

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