Exemple #1
0
        public async Task <BrowseItem> BrowseTV(FirebaseItem item)
        {
            HttpResponseMessage response = await client.GetAsync($"tv/{item.ID}?api_key={api}");

            if (response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                MovieDetail movieResponse = JsonConvert.DeserializeObject <MovieDetail>(content);

                if (movieResponse != null)
                {
                    return(new BrowseItem
                    {
                        ID = item.ID,
                        Image = imageSource + movieResponse.backdrop_path,
                        Title = movieResponse.original_title ?? movieResponse.name,
                        Type = "tv series",
                        Realised = item.Realised,
                        ToRealise = item.ToRealise
                    });
                }
            }
            return(new BrowseItem());
        }
Exemple #2
0
        private static double GetAvgRatingOfMovie(MovieDetail movieDetail)
        {
            double avgRating = 0;

            foreach (var item in movieDetail.OMDbMovieDetail.Ratings)
            {
                Double doubleRating = 0;
                if (item.Source.Equals("Rotten Tomatoes"))
                {
                    doubleRating = Convert.ToDouble(item.Value.Replace("%", "")) * 0.1;
                }
                else
                {
                    doubleRating = Convert.ToDouble(item.Value.Split("/")[0]);
                }

                avgRating += doubleRating;
            }

            if (movieDetail.OMDbMovieDetail.Ratings.Count > 0)
            {
                avgRating = avgRating / movieDetail.OMDbMovieDetail.Ratings.Count;
            }

            return(avgRating);
        }
Exemple #3
0
        public IActionResult GetMovieDetail(string imdbID)
        {
            try
            {
                MovieDetailViewModel movieDetailViewModel = new MovieDetailViewModel();
                if (string.IsNullOrEmpty(imdbID))
                {
                    MovieViewModel movieViewModel = new MovieViewModel();
                    movieViewModel.Message = "Please try clicking the link again";// could be user remove the imdID from url
                    return(View("~/Views/Movie/Search.cshtml", movieViewModel));
                }
                imdbID = imdbID.Trim();
                MovieDetail movieDetail = _movieService.GetMovieDetail(imdbID);
                if (movieDetail != null)
                {
                    string jsonLD = _jsonLDService.CreateJsonLDMovie(movieDetail);
                    movieDetailViewModel.JsonLDMovie = jsonLD;
                    movieDetailViewModel.MovieDetail = movieDetail;
                }
                else
                {
                    movieDetailViewModel.Message = "There is some error. Please try again later";
                }

                return(View("~/Views/Movie/Detail.cshtml", movieDetailViewModel));
            }
            catch (Exception ex)
            {
            }
            return(View("~/Views/Movie/Detail.cshtml", null));
        }
        private async void GetData(int iMovie)
        {
            MovieDetail oMovieDetail = new MovieDetail();

            oMovieDetail = await cpFeeds.GetMoviesDetail(iMovie);

            Date = oMovieDetail.release_date;

            string St = "";

            for (int r = 0; r < oMovieDetail.production_companies.Length; r++)
            {
                St += oMovieDetail.production_companies[r].name;
                if (r < 3)
                {
                    St += ",";
                }
            }
            Studio = St;

            string Gn = "";

            for (int rr = 0; rr < oMovieDetail.genres.Length; rr++)
            {
                Gn += oMovieDetail.genres[rr].name;
                if (rr < 3)
                {
                    Gn += ",";
                }
            }
            Genero = Gn;
        }
Exemple #5
0
        private async void GetMovieDetail()
        {
            if (string.IsNullOrEmpty(_movieId))
            {
                return;
            }

            using (HttpClient client = new HttpClient())
            {
                string url    = $"http://www.omdbapi.com/?i={_movieId}&apikey=32941a88";
                string result = await client.GetStringAsync(url);

                if (string.IsNullOrEmpty(result))
                {
                    return;
                }

                MovieDetail movieDetail = await Json.ToObjectAsync <MovieDetail>(result);

                if (movieDetail == null)
                {
                    return;
                }

                CurrentMovieDetail = movieDetail;
            }
        }
        public async Task <MovieDetail> Get(int id)
        {
            MovieDetail movieDetail = new MovieDetail();

            var request = new HttpRequestMessage(HttpMethod.Get,
                                                 "https://www.rottentomatoes.com/api/private/v1.0/movies/" + id);

            request.Headers.Add("Accept", "application/json");
            //request.Headers.Add("User-Agent", "HttpClientFactory-Sample");

            var client = clientFactory.CreateClient();

            var response = await client.SendAsync(request);

            if (response.IsSuccessStatusCode)
            {
                using var responseStream = await response.Content.ReadAsStreamAsync();

                movieDetail = await JsonSerializer.DeserializeAsync <MovieDetail>(responseStream);
            }
            else
            {
                //GetBranchesError = true;
                //movieDetail = Array.Empty<MovieDetail>();
            }

            return(movieDetail);
        }
Exemple #7
0
        public override List <MovieDetail> ParseMovies(string html)
        {
            var dom    = htmlParser.Parse(html);
            var movies = new List <MovieDetail>();
            var lis    = dom.QuerySelectorAll("div.xing_vb")?.SelectMany(div => div.QuerySelectorAll("li"));

            foreach (var li in lis)
            {
                if (li.QuerySelector("a") == null || string.IsNullOrEmpty(li.QuerySelector(".xing_vb5")?.TextContent))
                {
                    continue;
                }
                var onlineURL = "http://www.btrenren.com" + li.QuerySelector("a").GetAttribute("href");
                DateTime.TryParse(li.QuerySelector(".xing_vb6")?.TextContent, out var publishTime);
                var movie = new MovieDetail()
                {
                    Name        = li.QuerySelector("a").TextContent,
                    Link        = onlineURL,
                    Type        = li.QuerySelector(".xing_vb5")?.TextContent,
                    PublishTime = publishTime,
                    UpdateTime  = DateTime.Now
                };
                FillMovieDetail(onlineURL, movie);
                movies.Add(movie);
            }
            return(movies);
        }
Exemple #8
0
        protected void FillMovieDetail(string onlineURL, MovieDetail movie)
        {
            var movieHTML = LoadHTML(onlineURL);

            if (!string.IsNullOrEmpty(movieHTML))
            {
                var htmlDoc = htmlParser.Parse(movieHTML);

                movie.Cover = htmlDoc?.QuerySelector("div.vodImg")?.QuerySelector("img")?.GetAttribute("src");
                var vodplayinfos = htmlDoc?.QuerySelectorAll("div.vodplayinfo");
                if (vodplayinfos.Count() > 2)
                {
                    movie.Intro         = vodplayinfos[1]?.TextContent;
                    movie.DownResources = new List <Resource>();
                    if (vodplayinfos[2].QuerySelectorAll("li").Any())
                    {
                        movie.DownResources.AddRange(GetResources(vodplayinfos[2]));
                    }
                    if (vodplayinfos[3].QuerySelectorAll("li").Any())
                    {
                        movie.DownResources.AddRange(GetResources(vodplayinfos[3]));
                    }
                }
            }
        }
Exemple #9
0
        private static double GetActorAvgGross(MovieDetail targetMovie)
        {
            Dictionary <String, Double> movieDetailDict = new Dictionary <string, Double>();

            foreach (var cast in targetMovie.MovieCredit.Casts)
            {
                foreach (var movie in movieDetails)
                {
                    if (movie.MovieCredit.Casts.Exists(x => x.Name == cast.Name))
                    {
                        if (movieDetailDict.ContainsKey(movie.ImdbId) == false)
                        {
                            if (movie.Revenue > 0)
                            {
                                movieDetailDict.Add(movie.ImdbId, movie.Revenue);
                            }
                        }
                    }
                }
            }

            if (movieDetailDict.Count == 0)
            {
                return(0);
            }

            return(movieDetailDict.Sum(x => x.Value) / movieDetailDict.Count);
        }
Exemple #10
0
        public async Task <ActionResult <MovieDetail> > PostMovieDetail(MovieDetail movieDetail)
        {
            _context.MovieDetail.Add(movieDetail);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetMovieDetail", new { id = movieDetail.MovieDetailId }, movieDetail));
        }
Exemple #11
0
        public async Task <DetailItem> TvDetail(string ID)
        {
            HttpResponseMessage response = await client.GetAsync($"tv/{ID}?api_key={api}");

            if (response.IsSuccessStatusCode)
            {
                string content = await response.Content.ReadAsStringAsync();

                MovieDetail movieResponse = JsonConvert.DeserializeObject <MovieDetail>(content);

                if (movieResponse != null)
                {
                    string genres = String.Join(", ", movieResponse.genres.Select(x => x.name));

                    return(new DetailItem()
                    {
                        Title = movieResponse.original_title ?? movieResponse.name,
                        VoteAverage = movieResponse.vote_average,
                        Runtime = TimeConverter(movieResponse.episode_run_time[0]),
                        Release = movieResponse.first_air_date != null?Convert.ToDateTime(movieResponse.first_air_date).ToShortDateString() : "",
                                      Poster = imageSource + movieResponse.poster_path,
                                      Background = imageSource + movieResponse.backdrop_path,
                                      Genres = genres,
                                      Overview = movieResponse.overview,
                                      Cast = await TvCast(ID)
                    });
                }
            }

            return(null);
        }
Exemple #12
0
 /**
  * Constructor
  * */
 public VM_MovieRootFrame() : base()
 {
     List   = new DisplayMovies();
     Detail = new MovieDetail();
     MessengerInstance.Register <STATE>(this, "state_changed", StateChangedAck);
     OpenCreateMovie = new RelayCommand(() => GoToAddMovie());
 }
        /// <summary>
        /// GetMovieByIdAndProvider
        /// </summary>
        /// <param name="id"></param>
        /// <param name="provider"></param>
        /// <returns></returns>
        public async Task <MovieDetail> GetMovieByIdAndProvider(string id, string provider)
        {
            MovieDetail movieDetail = null;

            try
            {
                logger.Info("Request Movie by ID {0} Provider: {1}", provider, id);
                HttpResponseMessage response = await _baseService.GetDataFromExternalAPI(provider + "/movie/" + id);

                if (response != null && response.IsSuccessStatusCode)
                {
                    var obj = response.Content.ReadAsStringAsync().Result;
                    if (obj != null)
                    {
                        string jsonstring         = JsonConvert.SerializeObject(obj);
                        var    deserializedString = JsonConvert.DeserializeObject <string>(jsonstring);
                        movieDetail = JsonConvert.DeserializeObject <MovieDetail>(deserializedString);
                    }
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Unable to Fetch Movie with Id: {0} and Provider: {1}", id, provider);
            }

            return(movieDetail);
        }
        // <summary>
        // Get FullMovie Details
        // </summary>
        // <returns></returns>
        public async Task <List <MovieDetail> > GetFullMovieDetails()
        {
            List <MovieDetail> movieDetails = new List <MovieDetail>();

            try
            {
                if (_cache.TryGetValue(Constants.MovieDetails, out IEnumerable <MovieDetail> moviesDetailsCache))
                {
                    return(moviesDetailsCache.ToList());
                }
                List <Movie> movies = await GetMovies();

                logger.Info("Count of movies to Fetch movie details by provider and Id : {0}", movies.Count);
                foreach (Movie movie in movies)
                {
                    MovieDetail movieDetail = await GetMovieByIdAndProvider(movie.Id, movie.Provider);

                    if (movieDetail != null)
                    {
                        movieDetail.Provider = movie.Provider;
                        movieDetails.Add(movieDetail);
                    }
                }
                if (movieDetails != null && movieDetails.Count != 0)
                {
                    _cache.Set(Constants.MovieDetails, movieDetails);
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex, "Unable to Fetch Movie Details");
            }
            return(movieDetails);
        }
Exemple #15
0
        public async Task <IMovieDetail> GetMovieDetailAsync(int movieID)
        {
            var movieDetail = await ApiHandler.GetApi <MovieDetailsRootDTO>($"/movie/{movieID}?language=en-US&");

            var result = new MovieDetail()
            {
                Adult             = movieDetail.adult,
                Budget            = movieDetail.budget,
                Genres            = movieDetail.genres,
                Id                = movieDetail.id,
                Original_language = movieDetail.original_language,
                Original_title    = movieDetail.original_title,
                Overview          = movieDetail.overview,
                Popularity        = movieDetail.popularity,
                Poster_path       = "https://image.tmdb.org/t/p/w500" + movieDetail.poster_path,
                Release_date      = movieDetail.release_date,
                Revenue           = movieDetail.revenue,
                Runtime           = movieDetail.runtime,
                Spoken_languages  = movieDetail.spoken_languages,
                Status            = movieDetail.status,
                Tagline           = movieDetail.tagline,
                Title             = movieDetail.title,
                Vote_average      = movieDetail.vote_average * 10,
                movieTrailerURL   = await GetMovieTrailerURLByID(movieDetail.id),
                videoUrls         = await GetMovieVideosURLByID(movieDetail.id),
                RecommendedMovies = await GetMovieRecommendations(movieDetail.id),
                movieReviews      = (await GetMovieReviews(movieDetail.id))?.ToList(),
                movieImages       = (MovieImages) await GetMovieImagesAsync(movieDetail.id),
                backDropPath      = "https://image.tmdb.org/t/p/w500" + movieDetail.backdrop_path
            };

            return(result);
        }
        // GET: Movie/Edit/5
        public ActionResult Edit(int id)
        {
            MovieDetail model = userUC.DisplayMovieDetail(id);

            //TODO EF to Common.MTO.MovieDetail
            return(View(model));
        }
Exemple #17
0
        public async Task <MovieDetail> GetMovieDetail(int id)
        {
            ApiQueryResponse <Movie> movieInfo = await _api.FindByIdAsync(id);

            MovieDetail movie = new MovieDetail();

            if (movieInfo.Item != null)
            {
                movie = new MovieDetail()
                {
                    title       = movieInfo.Item.Title,
                    runtime     = movieInfo.Item.Runtime.ToString(),
                    description = movieInfo.Item.Overview,
                    tagLine     = movieInfo.Item.Tagline,
                    budget      = movieInfo.Item.Budget.ToString(),
                };

                var movieGenre = "";

                for (int i = 0; i < movieInfo.Item.Genres.Count; i++)
                {
                    if (i + 1 == movieInfo.Item.Genres.Count)
                    {
                        movieGenre += movieInfo.Item.Genres[i];
                    }
                    else
                    {
                        movieGenre += movieInfo.Item.Genres[i] + ", ";
                    }
                }

                movie.genres = movieGenre;
            }
            return(movie);
        }
Exemple #18
0
 public Detail(MovieDetail movie, MovieService api)
 {
     this._movie         = movie;
     _detailViewModel    = new DetailViewModel(movie, api);
     this.BindingContext = this._detailViewModel;
     InitializeComponent();
 }
Exemple #19
0
        public async Task <IActionResult> PutMovieDetail(long id, MovieDetail movieDetail)
        {
            if (id != movieDetail.MovieDetailId)
            {
                return(BadRequest());
            }

            _context.Entry(movieDetail).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!MovieDetailExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        // GET api/<controller>/xyz
        public async Task <HttpResponseMessage> Get(string movieId)
        {
            MovieDetail movie = new MovieDetail();

            movie = GlobalCachingProvider.Instance.GetItem(movieId, remove: false) as MovieDetail;
            if (movie != null)
            {
                return(Request.CreateResponse(System.Net.HttpStatusCode.OK, movie));
            }
            else
            {
                try
                {
                    using (HttpClient httpClient = new HttpClient())
                    {
                        httpClient.DefaultRequestHeaders.Add(Constants.WebjetTokenName, Constants.WebjetTokenValue);
                        HttpResponseMessage response = await httpClient.GetAsync(string.Format(Constants.WebjetMovieURL, movieId));

                        response.EnsureSuccessStatusCode();
                        var result = await response.Content.ReadAsStringAsync();

                        Logger.Write(LogLevel.INFO, string.Format("Movie data retrieved for ID: {0}", movieId));
                        movie = JsonConvert.DeserializeObject <MovieDetail>(result);
                        GlobalCachingProvider.Instance.AddItem(movieId, movie);
                        return(Request.CreateResponse(System.Net.HttpStatusCode.OK, movie));
                    }
                }
                catch (Exception ex)
                {
                    Logger.Write(LogLevel.ERROR, ex.Message);
                    return(Request.CreateResponse(System.Net.HttpStatusCode.InternalServerError, string.Format("Could not get movie for ID: {0}", movieId)));
                }
            }
        }
        public async Task <IActionResult> Edit(int id, [Bind("Id,Description,BoxOffice,MovieId")] MovieDetail movieDetail)
        {
            if (id != movieDetail.Id)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(movieDetail);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MovieDetailExists(movieDetail.Id))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["MovieId"] = new SelectList(_context.Set <Movie>(), "Id", "Id", movieDetail.MovieId);
            return(View(movieDetail));
        }
        public void AddToUserCollection(MovieDetail imdbmovie)
        {
            try
            {
                var movie = new MovieDetail
                {
                    Director = imdbmovie.Director,
                    Genre    = imdbmovie.Genre,
                    imdbID   = imdbmovie.imdbID,
                    Poster   = imdbmovie.Poster,
                    Title    = imdbmovie.Title,
                    Year     = imdbmovie.Year,
                    UserID   = userId,
                    Actors   = imdbmovie.Actors,
                    Country  = imdbmovie.Country
                };

                // TODO: Add insert logic here
                unitOfWork.MovieDetailRepository.Create(movie);
                unitOfWork.SaveChanges();
            }
            catch (Exception)
            {
                throw new Exception("Movie not added to list");
            }
        }
        /// <summary>
        /// Search Movies by ID and Returns movie object ignoring any errors
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        private async Task <MovieDetail> GetMovieDetails(string ID)
        {
            MovieDetail movieDetail = null;

            if (ID.StartsWith("cw", StringComparison.OrdinalIgnoreCase))
            {
                try
                {
                    movieDetail = await cinemaWorldClient.GetMovieDetails(cancellationTokenSource.Token, ID);

                    return(movieDetail);
                }
                catch (Exception e)
                {
                    logger.LogError("CinemaWorldClient.GetMovieDetails()- Exception occured", e);
                }
            }
            else
            {
                try
                {
                    movieDetail = await filmWorldClient.GetMovieDetails(cancellationTokenSource.Token, ID);

                    return(movieDetail);
                }
                catch (Exception e)
                {
                    logger.LogError("FilmWorldClient.GetMovieDetails()- Exception occured", e);
                }
            }

            return(movieDetail);
        }
Exemple #24
0
        private decimal CalculateCheapPrice(MovieDetail cinemaWorldMovie, MovieDetail filmWoldMovie)
        {
            var cinemaPrice    = decimal.Parse(cinemaWorldMovie.Price);
            var filmWorldPrice = decimal.Parse(filmWoldMovie.Price);

            return(cinemaPrice > filmWorldPrice ? filmWorldPrice : cinemaPrice);
        }
Exemple #25
0
        private MovieDetail BuildMovieDetailModel(MovieDetail cinemaWorldMovie, MovieDetail filmWorldMovie)
        {
            MovieDetail moveDetail = null;

            if (cinemaWorldMovie != null)
            {
                moveDetail = cinemaWorldMovie;
            }
            else if (filmWorldMovie != null)
            {
                moveDetail = filmWorldMovie;
            }

            if (moveDetail != null && cinemaWorldMovie != null && filmWorldMovie != null)
            {
                moveDetail.Price = CalculateCheapPrice(cinemaWorldMovie, filmWorldMovie).ToString();
            }

            if (moveDetail != null)
            {
                moveDetail.ID = GetMovieDigitId(moveDetail.ID);
            }

            return(moveDetail);
        }
Exemple #26
0
        public ActionResult Delete(int?id)
        {
            MovieService service = new MovieService();
            MovieDetail  movie   = service.GetMovieById(id);

            return(View(movie));
        }
        public async Task GetDetailMovie(string MovieId)
        {
            getDetailMovieQuery = $"{URL_BASE_APIREST}/{MovieId}?api_key={Environment.THEMOVIEDB_API_KEY}&language=en-US";

            var movieDetail = new MovieDetail();

            var client   = new HttpClient();
            var response = await client.GetAsync(getDetailMovieQuery);

            if (response.IsSuccessStatusCode)
            {
                var ContentString = await response.Content.ReadAsStringAsync();

                movieDetail = JsonConvert.DeserializeObject <MovieDetail>(ContentString);
                if (movieDetail != null)
                {
                    movieDetail.PosterImage = URL_BASE_IMAGE + movieDetail.PosterImage;

                    var splitData = movieDetail.Release.Split('-');
                    if (splitData.Any())
                    {
                        movieDetail.Release = splitData[0];
                    }
                }
                movieDetail.Casts = await GetCastsMovie(MovieId);
            }

            GetDetailMovie_Completed?.Invoke(this, new GenericEventArg <MovieDetail>(movieDetail));
        }
Exemple #28
0
        public IActionResult Delete(int id, MovieDetail m1)
        {
            var moviedetails = context.MovieDetails.Where(x => x.MovieDetailId == id).SingleOrDefault();

            context.MovieDetails.Remove(moviedetails);
            context.SaveChanges();
            return(RedirectToAction("Index"));
        }
Exemple #29
0
        public async Task <MovieDetail> Get(int id)
        {
            MovieDetail movieDetail = new MovieDetail();

            movieDetail = await projectAAL.Get(id);

            return(movieDetail);
        }
        public async Task <IActionResult> Detail(int id)
        {
            MovieDetail list = new MovieDetail();

            list = await project.Get(id);

            return(View(list));
        }