示例#1
0
 public IEnumerable <Advertisement> GetDisabled(Range range)
 {
     return(Context.Advertisements.Where(adv => adv.Status == Status.Disabled).Skip(range.From).Take(range.To - range.From));
 }
示例#2
0
        public IEnumerable <Advertisement> Search(SearchAdvertisementsRequest request, Range range)
        {
            foreach (Detail rd in request.Details)
            {
                if (rd.StringValue == null)
                {
                    Debug.WriteLine("HIBA!"); rd.StringValue = "";
                }
            }

            //Szűrés
            var result = Context.Advertisements.Include(ad => ad.Details).Where(adv =>
                                                                                //A meta adattagok alapján válogatunk
                                                                                request.Details.All(
                                                                                    rd => (rd.StringValue == "" && rd.NumberValue == 0) ||
                                                                                    adv.Details.Any(
                                                                                        d => ((d.StringValue == rd.StringValue || rd.StringValue == "") &&
                                                                                              d.NumberValue == rd.NumberValue) &&
                                                                                        d.MetaId == rd.MetaId)) &&
                                                                                //A fix adattagok alapján válogatunk
                                                                                (adv.Status != Status.Deleted && adv.Status != Status.Hidden && adv.Status != Status.Disabled) &&
                                                                                adv.Title.Contains(request.Title) &&
                                                                                (adv.Category.Id == request.CategoryId || request.CategoryId == 0) &&
                                                                                adv.Price >= request.MinPrice && adv.Price <= request.MaxPrice &&
                                                                                adv.UploadDate >= request.MinDate && adv.UploadDate <= request.MaxDate);

            //Rendezés
            if (request.Order == Order.Ascending)
            {
                result = result.OrderByDescending(adv => adv.Status).ThenBy(getOrderFunc(request.OrderBy));
            }
            else
            {
                result = result.OrderByDescending(adv => adv.Status).ThenByDescending(getOrderFunc(request.OrderBy));
            }

            //Pagelés
            result = result.Skip(range.From).Take(range.To - range.From);

            return(result);
        }
示例#3
0
 public IEnumerable <Advertisement> Get(Range range)
 {
     return(Context.Advertisements.Where(adv => adv.Status != Status.Deleted && adv.Status != Status.Hidden && adv.Status != Status.Disabled).OrderByDescending(adv => adv.Status).Skip(range.From).Take(range.To - range.From));
 }