public IQueryable <InventoryItem> GetFilteredCarInventory(string searchParam, string sortColumn, int?sortOrder, int?pageParam)
        {
            BoxXDataReader       dataReader      = BoxXDataReader.Instance;
            IInventoryCollection dataCollection  = ModelFactory.CreateInventoryCollection(dataReader.SchemaPropertyNames);
            IInventoryQuery      query           = QueryFactory.CreateQuery();
            SortOrder?           parsedSortOrder = ParseSortOrder(sortOrder);

            if (parsedSortOrder.HasValue)
            {
                var propertyName = BoxXDataReader.GetPropertyNameFromColumnName(sortColumn);
                if (propertyName.HasValue)
                {
                    query.SortWith(propertyName.Value, parsedSortOrder.Value);
                }
            }

            if (pageParam.HasValue)
            {
                query.PagingWith(pageParam.Value, DataNumPerPage);
            }

            foreach (var propertyName in dataReader.SchemaPropertyNames)
            {
                query.FilterWith(propertyName.ValueLikes(searchParam));
            }

            dataReader.GetData(dataCollection, query);
            return(dataCollection.Items.Cast <InventoryItem>().AsQueryable());
        }
        public IQueryable <InventoryItem> GetAllCarInventory()
        {
            BoxXDataReader       dataReader     = BoxXDataReader.Instance;
            IInventoryCollection dataCollection = ModelFactory.CreateInventoryCollection(dataReader.SchemaPropertyNames);
            IInventoryQuery      query          = QueryFactory.CreateQuery();

            dataReader.GetData(dataCollection, query);

            return(dataCollection.Items.Cast <InventoryItem>().AsQueryable());
        }