public async Task <IActionResult> Edit(int id, [Bind("MovieId,CreditId")] MovieCredit movieCredit)
        {
            if (id != movieCredit.MovieId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(movieCredit);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!MovieCreditExists(movieCredit.MovieId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CreditId"] = new SelectList(_context.Credits, "Id", "LastName", movieCredit.CreditId);
            ViewData["MovieId"]  = new SelectList(_context.Movies, "Id", "Title", movieCredit.MovieId);
            return(View(movieCredit));
        }
        public async Task GetCreditsAsync_ReturnsCrewMembers()
        {
            const int movieIdRunLolaRun = 104;

            ApiQueryResponse <MovieCredit> response = await _api.GetCreditsAsync(movieIdRunLolaRun);

            ApiResponseUtil.AssertErrorIsNull(response);

            MovieCredit credit = response.Item;

            MovieCrewMember director = credit.CrewMembers.Single(x => x.Job == "Director");

            Assert.AreEqual(1071, director.PersonId);
            Assert.AreEqual("52fe4218c3a36847f80038ab", director.CreditId);
            Assert.AreEqual("Directing", director.Department);
            Assert.AreEqual("Tom Tykwer", director.Name);

            foreach (MovieCrewMember crewMember in credit.CrewMembers)
            {
                Assert.IsTrue(crewMember.PersonId > 0);
                Assert.IsFalse(string.IsNullOrWhiteSpace(crewMember.CreditId));
                Assert.IsFalse(string.IsNullOrWhiteSpace(crewMember.Department));
                Assert.IsFalse(string.IsNullOrWhiteSpace(crewMember.Job));
                Assert.IsFalse(string.IsNullOrWhiteSpace(crewMember.Name));
            }
        }
예제 #3
0
        private UIButton NavigationButton(UITextField nameField, ApiSearchResponse <MovieInfo> response, ImageDownloader downloader, UIActivityIndicatorView activitySpinner)
        {
            var navigateButton = UIButton.FromType(UIButtonType.RoundedRect);

            navigateButton.Frame = new CoreGraphics.CGRect(margin, spaceBetween * 3, this.View.Bounds.Width - (margin * 2), 50);
            navigateButton.SetTitle("See Movie list", UIControlState.Normal);

            navigateButton.TouchUpInside += async(sender, args) =>
            {
                activitySpinner.StartAnimating();
                nameField.ResignFirstResponder();
                response = await _movieApi.SearchByTitleAsync(nameField.Text); //Nær í allar upplýsingar tengdum myndunu

                MovieCredit[] credits = new MovieCredit[response.Results.Count];
                for (int i = 0; i < response.Results.Count; i++)
                {
                    var credit = await _movieApi.GetCreditsAsync(response.Results[i].Id, "en");

                    credits[i] = credit.Item;
                }

                var task = downloader.DownloadImagesFromResponces(response); //Download'ar öllum pósterum

                await task;

                activitySpinner.StopAnimating();
                this.NavigationController.PushViewController(new MovieListController(response, downloader, _movieApi, credits), true);
            };
            return(navigateButton);
        }
        public async Task GetCreditsAsync_ReturnsCastMembers()
        {
            const int movieIdRunLolaRun = 104;

            ApiQueryResponse <MovieCredit> response = await _api.GetCreditsAsync(movieIdRunLolaRun);

            ApiResponseUtil.AssertErrorIsNull(response);

            MovieCredit credit = response.Item;

            MovieCastMember lola = credit.CastMembers.Single(x => x.Character == "Lola");

            Assert.AreEqual(679, lola.PersonId);
            Assert.AreEqual(11, lola.CastId);
            Assert.AreEqual("52fe4218c3a36847f80038df", lola.CreditId);
            Assert.AreEqual("Franka Potente", lola.Name);

            foreach (MovieCastMember castMember in credit.CastMembers)
            {
                Assert.IsTrue(castMember.PersonId > 0);
                Assert.IsTrue(castMember.CastId > 0);
                Assert.IsFalse(string.IsNullOrWhiteSpace(castMember.CreditId));
                Assert.IsFalse(string.IsNullOrWhiteSpace(castMember.Name));
                Assert.IsFalse(string.IsNullOrWhiteSpace(castMember.Character));
            }
        }
예제 #5
0
        public async Task <MovieCredit> GetCreditsAsync(int movieId, string language = "en")
        {
            string uri = $"{AppSettings.ApiUrl}movie/{movieId}/credits?api_key={AppSettings.ApiKey}&language={language}";

            MovieCredit response = await _requestProvider.GetAsync <MovieCredit>(uri);

            return(response);
        }
예제 #6
0
        public async Task MovieCreditTest()
        {
            MovieCredit moviesCredits = await mdb.MovieCredit(299537, new UrlParameters { });

            Console.WriteLine("id: {0}", moviesCredits.id);
            Console.WriteLine("id: {0}", moviesCredits.cast[0].cast_id);
            Console.WriteLine("cast name [0]: {0}", moviesCredits.cast[0].name);
            Console.WriteLine("crew name [0]: {0}", moviesCredits.crew[0].name);

            Assert.IsTrue(moviesCredits != null);
        }
        public async Task <IActionResult> Create([Bind("MovieId,CreditId")] MovieCredit movieCredit)
        {
            if (ModelState.IsValid)
            {
                _context.Add(movieCredit);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["CreditId"] = new SelectList(_context.Credits, "Id", "LastName", movieCredit.CreditId);
            ViewData["MovieId"]  = new SelectList(_context.Movies, "Id", "Title", movieCredit.MovieId);
            return(View(movieCredit));
        }
예제 #8
0
        private MovieCredit MapToCrew(JObject crewContent, int order)
        {
            MovieCredit movieCredit = new MovieCredit()
            {
                Id          = crewContent["credit_id"].Value <string>(),
                Order       = order,
                PersonId    = crewContent["id"].Value <int>(),
                Name        = crewContent["name"].Value <string>(),
                IsCast      = false,
                Role        = crewContent["job"].Value <string>(),
                ProfilePath = crewContent["profile_path"].Value <string>(),
            };

            return(movieCredit);
        }
예제 #9
0
        private MovieCredit MapToCast(JObject castContent)
        {
            MovieCredit movieCredit = new MovieCredit()
            {
                Id          = castContent["credit_id"].Value <string>(),
                Order       = castContent["order"].Value <int>(),
                PersonId    = castContent["id"].Value <int>(),
                Name        = castContent["name"].Value <string>(),
                IsCast      = true,
                Role        = castContent["character"].Value <string>(),
                ProfilePath = castContent["profile_path"].Value <string>(),
            };

            return(movieCredit);
        }
예제 #10
0
        public void UpdateCell(MovieInfo info, MovieCredit credit)
        {
            var b = _downloader.LocalPathForFilename(info.PosterPath);

            this._imageView.Image   = UIImage.FromFile(b);
            this._headingLabel.Text = info.Title + "(" + info.ReleaseDate.Year.ToString() + ")";
            if (credit.CastMembers.Count < 3)
            {
                for (int i = 0; i < credit.CastMembers.Count; i++)
                {
                    this._subheadingLabel.Text += credit.CastMembers[i].Name.ToString() + ", ";
                }
            }
            else
            {
                this._subheadingLabel.Text = credit.CastMembers[0].Name.ToString() + ", " + credit.CastMembers[1].Name.ToString() + ", " + credit.CastMembers[2].Name.ToString();
            }
        }
예제 #11
0
        private async Task LoadMovies(ApiSearchResponse <MovieInfo> responseMovieInfos)
        {
            this._movies = new List <Movie>();
            var movieApi = MovieDbFactory.Create <IApiMovieRequest>().Value;

            int runtime = 0;

            if (responseMovieInfos != null && responseMovieInfos.Results != null && responseMovieInfos.Results.Count != 0)
            {
                foreach (MovieInfo info in responseMovieInfos.Results)
                {
                    // Get movie id
                    int movieId = info.Id;

                    // Get Movie object - to get runtime
                    ApiQueryResponse <DM.MovieApi.MovieDb.Movies.Movie> responseMovies = await movieApi.FindByIdAsync(movieId);

                    DM.MovieApi.MovieDb.Movies.Movie movie = responseMovies.Item;
                    if (movie != null)
                    {
                        runtime = movie.Runtime;
                    }

                    // Get MovieCredit object - to get list of actors
                    ApiQueryResponse <MovieCredit> responseCredits = await movieApi.GetCreditsAsync(movieId);

                    MovieCredit credit = responseCredits.Item;

                    string actors = "";
                    // Take first 3 actors
                    if (credit != null && credit.CastMembers != null && credit.CastMembers.Count != 0)
                    {
                        int actorsListSize = credit.CastMembers.Count > 3 ? 3 : credit.CastMembers.Count;
                        for (int i = 0; i < actorsListSize; i++)
                        {
                            actors += credit.CastMembers[i].Name;
                            if (i != actorsListSize - 1)
                            {
                                actors += ", ";
                            }
                        }
                    }

                    // Put genre to list
                    string genres = "";
                    for (int i = 0; i < info.Genres.Count; i++)
                    {
                        genres += info.Genres[i].Name;
                        if (i != info.Genres.Count - 1)
                        {
                            genres += ", ";
                        }
                    }

                    string title      = info.Title == null ? "" : info.Title;
                    string year       = info.ReleaseDate.Year.ToString() == null ? "" : info.ReleaseDate.Year.ToString();
                    string overview   = info.Overview == null ? "" : info.Overview;
                    string posterPath = info.PosterPath;
                    this.AddMovie(title, year, overview, posterPath, actors, genres, runtime);
                }
            }
        }
 public MovieDetailViewController(MovieInfo res, ImageDownloader downloader, MovieCredit credit)
 {
     this._res        = res;
     this._downloader = downloader;
     this._credit     = credit;
 }