private List <IEntitySearch <Car> > CreateSearch(AdvancedSearchCarModel item)
        {
            var entitySearches = new List <IEntitySearch <Car> >();

            if (item.CarGearboxID.HasValue)
            {
                entitySearches.Add(new CarGearboxIDSearch(item.CarGearboxID.Value));
            }
            if (item.CarMakeIds != null)
            {
                entitySearches.Add(new CarMakeIDSearch(item.CarMakeIds));
            }
            if (item.CarModelIds != null)
            {
                entitySearches.Add(new CarModelIDSearch(item.CarModelIds));
            }
            if (item.FromCarPrice.HasValue)
            {
                entitySearches.Add(new CarPriceSearch(item.FromCarPrice.Value, SearchEnum.GreaterThan));
            }
            if (item.ToCarPrice.HasValue)
            {
                entitySearches.Add(new CarPriceSearch(item.ToCarPrice.Value, SearchEnum.LessThan));
            }
            if (item.FromCarYear.HasValue)
            {
                entitySearches.Add(new CarYearSearch(item.FromCarYear.Value, SearchEnum.GreaterThan));
            }
            if (item.ToCarYear.HasValue)
            {
                entitySearches.Add(new CarYearSearch(item.ToCarYear.Value, SearchEnum.LessThan));
            }
            if (item.FromHorsePower.HasValue)
            {
                entitySearches.Add(new CarHorsePowerSearch(item.FromHorsePower.Value, SearchEnum.GreaterThan));
            }
            if (item.ToHorsePower.HasValue)
            {
                entitySearches.Add(new CarHorsePowerSearch(item.ToHorsePower.Value, SearchEnum.LessThan));
            }
            if (item.Kilometers.HasValue)
            {
                entitySearches.Add(new CarKilometersSearch(item.Kilometers.Value, SearchEnum.LessThan));
            }
            if (item.ColourID.HasValue)
            {
                entitySearches.Add(new CarColourSearch(item.ColourID.Value));
            }
            if (item.IsForParts.HasValue || item.IsUsed.HasValue)
            {
                var condition = new CarContitionModel();
                condition.IsForParts = item.IsForParts;
                condition.IsUsed     = item.IsUsed;


                entitySearches.Add(new CarConditionSearch(condition));
            }
            if (item.ExcludedExtraIds != null)
            {
                entitySearches.Add(new CarExtrasSearch(item.ExcludedExtraIds, SearchEnum.NotEquals));
            }
            if (item.IncludedExtraIds != null)
            {
                entitySearches.Add(new CarExtrasSearch(item.IncludedExtraIds));
            }
            if (item.OrderBy == CarOrderByEnum.Last2Days)
            {
                var latest = new CarDateCreatedSearch(DateTime.Now.AddDays(-2), SearchEnum.GreaterOrEquals);
                entitySearches.Add(latest);
            }
            return(entitySearches);
        }
 public CarDateCreatedWhere(CarDateCreatedSearch search)
 {
     this.search = search;
 }