public virtual async Task <List <ProcessedCart> > GetRecurringCartsAsync(GetRecurringOrderCartsViewModelParam param) { if (param == null) { throw new ArgumentNullException(nameof(param)); } if (param.CultureInfo == null) { throw new ArgumentException(nameof(param.CultureInfo)); } if (param.CustomerId == Guid.Empty) { throw new ArgumentException(nameof(param.CustomerId)); } if (string.IsNullOrWhiteSpace(param.Scope)) { throw new ArgumentException(nameof(param.Scope)); } var request = new GetCartsByCustomerIdRequest() { CustomerId = param.CustomerId, ScopeId = param.Scope, CultureName = param.CultureInfo.Name, CartType = CartConfiguration.RecurringOrderCartType }; var cartSummaries = await OvertureClient.SendAsync(request).ConfigureAwait(false); var resultTasks = cartSummaries.Select(cart => { var getCartParam = (new GetCartParam { Scope = param.Scope, CultureInfo = param.CultureInfo, CustomerId = param.CustomerId, CartName = cart.Name, BaseUrl = param.BaseUrl, ExecuteWorkflow = true }); return(GetCartAsync(getCartParam)); }); var carts = await Task.WhenAll(resultTasks); carts.Where(i => i != null); return(carts.ToList()); }
public Task <List <ProcessedCart> > GetRecurringCartsAsync(GetRecurringOrderCartsViewModelParam param) { throw new NotImplementedException(); }
public virtual async Task <RecurringOrderCartsViewModel> GetRecurringOrderCartListViewModelAsync(GetRecurringOrderCartsViewModelParam param) { if (!RecurringOrdersSettings.Enabled) { return(new RecurringOrderCartsViewModel()); } var carts = await CartRepository.GetRecurringCartsAsync(param).ConfigureAwait(false); return(await GetRecurringOrderCartListViewModelFromCartsAsync(new GetRecurringOrderCartsViewModelFromCartsParam { Carts = carts, BaseUrl = param.BaseUrl, CultureInfo = param.CultureInfo })); }