private bool VerifyMergedCart(UpdateCartParam param)
        {
            param.Shipments.First().LineItems.Count().ShouldBeEquivalentTo(1);

            var lineItem1 = param.Shipments.First().LineItems.FirstOrDefault(x => x.ProductId == "P1");

            lineItem1.Should().NotBeNull();
            lineItem1.Quantity.ShouldBeEquivalentTo(1);

            return(true);
        }
        public Task <ProcessedCart> UpdateCartAsync(UpdateCartParam param)
        {
            var processedCart = new ProcessedCart
            {
                CultureName     = param.CultureInfo.Name,
                CustomerId      = param.CustomerId,
                ScopeId         = param.Scope,
                Name            = param.CartName,
                BillingCurrency = param.BillingCurrency,
                CartType        = param.CartType,
                Coupons         = param.Coupons,
                Customer        = param.Customer,
                OrderLocation   = param.OrderLocation,
                PropertyBag     = param.PropertyBag,
                Shipments       = param.Shipments,
                Status          = param.Status,
            };

            return(Task.FromResult(processedCart));
        }
Пример #3
0
        /// <summary>
        /// Update the Cart with new information
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public virtual Task <ProcessedCart> UpdateCartAsync(UpdateCartParam param)
        {
            var request = new UpdateCartRequest
            {
                CultureName     = param.CultureInfo != null ? param.CultureInfo.Name : null,
                CustomerId      = param.CustomerId,
                ScopeId         = param.Scope,
                CartName        = param.CartName,
                BillingCurrency = param.BillingCurrency,
                CartType        = param.CartType,
                Coupons         = param.Coupons,
                Customer        = param.Customer,
                OrderLocation   = param.OrderLocation,
                PropertyBag     = param.PropertyBag,
                Shipments       = param.Shipments,
                Status          = param.Status,
                Payments        = param.Payments
            };

            var cacheKey = BuildCartCacheKey(param.Scope, param.CustomerId, param.CartName);

            return(CacheProvider.ExecuteAndSetAsync(cacheKey, () => OvertureClient.SendAsync(request)));
        }