Example #1
0
        public OrderSearchResults SearchOrders(string scope, ISearchCriteria criteria)
        {
            OrderGroup[] resultItems;

            var orderCriteria = criteria as OrderSearchCriteria;

            System.Threading.Thread.Sleep(100);
            var query = MockOrderList.Select(a => a);
            //var query = from item in MockOrderList
            //            select item;

            int totalCount = MockOrderList.Count;

            if (orderCriteria != null)
            {
                if (orderCriteria.Sort != null)
                {
                    if (orderCriteria.Sort.GetSort()[0].IsDescending)
                    {
                        query = query.OrderByDescending(x => x.Total);
                    }
                    else
                    {
                        query = query.OrderBy(x => x.Total);
                    }
                }

                if (!string.IsNullOrEmpty(orderCriteria.OrderStatus))
                {
                    query = query.Where(x => x.Status == orderCriteria.OrderStatus);
                }
                if (!string.IsNullOrEmpty(orderCriteria.TrackingNumber))
                {
                    query = query.Where(x => x.TrackingNumber.Contains(orderCriteria.TrackingNumber));
                }
                if (!string.IsNullOrEmpty(orderCriteria.CustomerEmail))
                {
                    query = query.Where(x => (x.OrderAddresses.Select(b => b.Email.StartsWith(orderCriteria.CustomerEmail)).Count()) > 0);
                }
                if (!string.IsNullOrEmpty(orderCriteria.CustomerId))
                {
                    query = query.Where(x => x.CustomerId == orderCriteria.CustomerId);
                }
                if (!string.IsNullOrEmpty(orderCriteria.Keyword))
                {
                    query = query.Where(x => x.TrackingNumber == orderCriteria.Keyword);
                }
                totalCount = query.Count();
                query      = query.Skip(criteria.StartingRecord).Take(criteria.RecordsToRetrieve);
            }

            resultItems = query.ToArray();

            MockSearchResults searchResults = new MockSearchResults(criteria, resultItems.Length, totalCount);
            var retVal = new OrderSearchResults(criteria, resultItems, searchResults);

            return(retVal);
        }
Example #2
0
        public OrderSearchResults SearchOrders(string scope, ISearchCriteria criteria)
        {
            var results = _searchService.Search(scope, criteria) as SearchResults;

            if (results != null)
            {
                var resultIds = results.GetKeyFieldValues <string>();

                var orders = _orderRepository.Orders.Where(x => resultIds.Contains(x.OrderGroupId)).ToArray();

                var retVal = new OrderSearchResults(criteria, orders, results);
                return(retVal);
            }
            return(null);
        }