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); }
// 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()); }
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))); }
public IEnumerable <AdvertisementBasicDTO> SearchAdvertisements([FromQuery] Range range, [FromBody] SearchAdvertisementsRequest request) { return(AdvertisementService.Search(range, request)); }