예제 #1
0
        public IHttpActionResult GetCurrentCart(string storeId, string customerId)
        {
            if (String.IsNullOrEmpty(customerId))
            {
                customerId = "anonymous";
            }

            var criteria = new Domain.Cart.Model.SearchCriteria
            {
                CustomerId = customerId,
                StoreId    = storeId
            };

            var searchResult = _searchService.Search(criteria);
            var retVal       = searchResult.ShopingCarts.FirstOrDefault(x => !string.IsNullOrEmpty(x.Name) && x.Name.Equals("default", StringComparison.OrdinalIgnoreCase));

            if (retVal == null)
            {
                retVal = searchResult.ShopingCarts.FirstOrDefault();
            }
            if (retVal == null)
            {
                return(Ok());
            }
            //need load whole cart
            return(GetCartById(retVal.Id));
        }
예제 #2
0
        public virtual IShoppingCartBuilder GetOrCreateCart(string storeId, string customerId, string cartName, string currency, string cultureName)
        {
            var criteria = new ShoppingCartSearchCriteria
            {
                CustomerId = customerId,
                StoreId    = storeId,
                Name       = cartName,
                Currency   = currency
            };

            var searchResult = _shoppingCartSearchService.Search(criteria);

            Cart = searchResult.Results.FirstOrDefault();

            if (Cart == null)
            {
                var customerContact = _memberService.GetByIds(new[] { customerId }).OfType <Contact>().FirstOrDefault();
                Cart = AbstractTypeFactory <ShoppingCart> .TryCreateInstance();

                Cart.Name         = cartName;
                Cart.LanguageCode = cultureName;
                Cart.Currency     = currency;
                Cart.CustomerId   = customerId;
                Cart.CustomerName = customerContact != null ? customerContact.FullName : "Anonymous";
                Cart.IsAnonymous  = customerContact == null;
                Cart.StoreId      = storeId;

                _shoppingCartService.SaveChanges(new[] { Cart });

                Cart = _shoppingCartService.GetByIds(new[] { Cart.Id }).FirstOrDefault();
            }

            return(this);
        }
        public IHttpActionResult Search(ShoppingCartSearchCriteria criteria)
        {
            var result = _searchService.Search(criteria);
            var retVal = new ShoppingCartSearchResult
            {
                Results    = result.Results.ToList(),
                TotalCount = result.TotalCount
            };

            return(Ok(retVal));
        }
        public IHttpActionResult SearchCarts([ModelBinder(typeof(SearchCriteriaBinder))] webModel.SearchCriteria criteria)
        {
            var retVal = _searchService.Search(criteria.ToCoreModel());

            return(Ok(retVal.ToWebModel()));
        }
        public IHttpActionResult Search(webModel.SearchCriteria criteria)
        {
            var retVal = _searchService.Search(criteria.ToCoreModel());

            return(Ok(retVal.ToWebModel()));
        }