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()); }
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, })); }