public async Task GetCinemas() { var allCinemas = await _cinemasAPI.Get <List <Model.Cinema> >(null); allCinemas.Sort((a, b) => a.Name.CompareTo(b.Name)); if (SelectedLocation != null) { Model.Requests.CinemasSearchRequest search = new Model.Requests.CinemasSearchRequest() { Location = SelectedLocation }; var c = new List <Model.Cinema>(); if (SelectedLocation == "All") { c = await _cinemasAPI.Get <List <Model.Cinema> >(null); } else { c = await _cinemasAPI.Get <List <Model.Cinema> >(search); } c.Sort((a, b) => a.Name.CompareTo(b.Name)); Cinemas.Clear(); foreach (var cinema in c) { Cinemas.Add(cinema); } } if (Locations.Count == 0) { var list = new List <string>(); list.Add("All"); foreach (var cinema in allCinemas) { list.Add(cinema.Location); } list = list.Distinct().ToList(); list.Sort(); foreach (var location in list) { Locations.Add(location); } } }
public List <Model.Cinema> Get(Model.Requests.CinemasSearchRequest request) { var query = _context.Cinemas.AsQueryable(); if (!string.IsNullOrWhiteSpace(request?.Name)) { query = query.Where(c => c.Name.ToLower().StartsWith(request.Name.ToLower())); } if (!string.IsNullOrWhiteSpace(request?.Address)) { query = query.Where(c => c.Address.ToLower().StartsWith(request.Address.ToLower())); } if (!string.IsNullOrWhiteSpace(request?.Location)) { query = query.Where(c => c.Location.ToLower().StartsWith(request.Location.ToLower())); } if (request?.Rating >= 0) { query = query.Where(c => c.Rating >= request.Rating); } return(_mapper.Map <List <Model.Cinema> >(query.ToList())); }
public ActionResult <List <Model.Cinema> > Get([FromQuery] Model.Requests.CinemasSearchRequest request) { return(_service.Get(request)); }