Esempio n. 1
0
        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
            }));
        }