Esempio n. 1
0
        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());
            }
        }
Esempio n. 2
0
        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())
                    });
                }
            }
        }