Exemplo n.º 1
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);
        }
Exemplo n.º 2
0
        // Keresés a hirdetések között státusz alapján
        public IEnumerable <AdvertisementBasicDTO> SearchByStatus(Models.Range range, SearchAdvertisementsRequest request, Status status)
        {
            var list = AdvertisementRepository.SearchByStatus(request, range, status);

            return(list.ToBasicDTO());
        }
Exemplo n.º 3
0
        public ActionResult <IEnumerable <AdvertisementBasicDTO> > SearchAdvertisements([FromQuery] Range range, [FromQuery] Status status, [FromBody] SearchAdvertisementsRequest request)
        {
            if (UserType != Admin)
            {
                return(Unauthorized());
            }

            return(Ok(AdvertisementService.SearchByStatus(range, request, status)));
        }
Exemplo n.º 4
0
 public IEnumerable <AdvertisementBasicDTO> SearchAdvertisements([FromQuery] Range range, [FromBody] SearchAdvertisementsRequest request)
 {
     return(AdvertisementService.Search(range, request));
 }