public IEnumerable <Media> Get([FromQuery] MediaSearchRequest request) { if ((request.Title == "" || request.Title == null) && request.GenreID == 0 && request.Year == 0) { return(_context.Media.AsNoTracking().AsEnumerable()); } else { var list = _context.MediaGenre .Include(m => m.Media) .AsNoTracking() .AsEnumerable(); if (request.Title != "" && request.Title != null) { list = list.Where(x => x.Media.Title.Contains(request.Title)).AsEnumerable(); } if (request.GenreID != 0) { list = list.Where(x => x.GenreID == request.GenreID) .AsEnumerable(); } if (request.Year != 0) { list = list.Where(x => x.Media.ReleaseDate.Year == request.Year) .AsEnumerable(); var lst = list.ToList(); } return(list.Select(med => med.Media).Distinct()); } }
public async Task Init() { try { if (Year == "") { Year = "0"; } int.Parse(Year); } catch { await Application.Current.MainPage.DisplayAlert("Error", "The year must be a number!", "OK"); return; } if (MovieGenres.Count == 0) { MovieGenres.Add(new Genre { GenreID = 0, Name = "None" }); var serviceReturns = await _genreService.Get <List <Genre> >(null); foreach (var item in serviceReturns) { MovieGenres.Add(item); } } MediaList.Clear(); int GenreID = 0; try { GenreID = SelectedGenre.GenreID; } catch { GenreID = 0; } MediaSearchRequest request = new MediaSearchRequest { GenreID = GenreID, Title = MovieTitle, Year = int.Parse(Year) }; string query = await request.ToQueryString(); var list = await $"{APIService._apiUrl}/MediaSearch?{query}".GetJsonAsync <IEnumerable <Media> >(); foreach (var item in list) { if (item.MediaID != 1) { MediaList.Add(new ListItem { Id = item.MediaID, Title = item.Title, Description = item.Synopsis, Image = $"{APIService._apiUrl}/images/covers/{item.MediaID}", Rating = int.Parse(await $"{APIService._apiUrl}/MediaRatings?id={item.MediaID}&username={APIService.Username}".GetStringAsync()) }); } } }