Pisząc sobie stronę dla zabawy, w .net core api oraz React, doszedłem do momentu obsługi wyszukiwarki. Od strony frontu nie ma problemu(REST, tak mniej więcej on).
Wysyłam zapytanie do serwera w stylu
Advert/page=1&producer=bmw&model=e36&fuel=
Na backendzie stworzyłem sobie kontroler Search
public async Task<JsonResult> Get(string page, string producer, string model,string fuel)
Dane z tego przekazuje do modelu logiki, gdzie stworzyłem takiego potworka
var offerList = (await carOfferService.GetAdvertList());
if (producer != null)
offerList = offerList.Where(x => x.ProducentName.ToLower() == producer.ToLower()).ToList();
if (model != null)
offerList = offerList.Where(x => x.ModelName.ToLower() == model.ToLower()).ToList();
if (fuel != null)
offerList = offerList.Where(x => x.Fuel.ToLower() == fuel.ToLower()).ToList();
Dodając jednak kolejne elementy do wyszukiwarki, dostanę straszy kod, z ifami, jak mi kontroler, który będzie przyjmować ogromną ilość argumentów.
Jak taka wyszukiwarka jest obsługiwana poprawnie? Sprawdzałem na otomoto, jak to idzie i tam leci po prostu get z parametrami w url.