Example #1
0
        private async Task <List <SearchViewModel> > SearchMovies(string query, MyList myList)
        {
            var response = await webRequest.Get(showService.ConvertToMovieSearch(query));

            if (!response.IsSuccessStatusCode)
            {
                throw new ArgumentException("Query request failed");
            }
            var content = await response.Content.ReadAsStringAsync();

            var                    json      = JObject.Parse(content);
            IList <JToken>         results   = json["results"].Children().ToList();
            List <SearchViewModel> movieList = new List <SearchViewModel>();

            foreach (JToken r in results)
            {
                Movie movieResult = r.ToObject <Movie>();
                try
                {
                    movieResult.Aired = DateTime.ParseExact(r["release_date"].ToString(), "yyyy-M-d", null).ToString("y");
                }
                catch (FormatException)
                {
                    movieResult.Aired = "Unknown Start Date";
                }
                movieResult.Artwork = r["poster_240x342"].ToString();
                bool inList = false;
                if (myList != null)
                {
                    var listCheck = myList.MyListShows?.FirstOrDefault(x => x.SafeCompareId(movieResult.ID));
                    inList = listCheck == null ? false : true;
                }
                movieList.Add(new SearchViewModel()
                {
                    IsInList = inList,
                    Movie    = movieResult
                });
            }
            return(movieList);
        }