Esempio n. 1
0
        public async Task <bool> TagMovie(TaggingDTO taggingDTO)
        {
            if (!_repo.MovieExists(taggingDTO.MovieId))
            {
                ApiHelper.MovieObject movieObject = await ApiHelper.ApiProcessor
                                                    .LoadMovieAsync(taggingDTO.MovieId);

                if (movieObject == null)
                {
                    return(false);
                }
                MovieDTO movieDTO = Mapper.MovieObjectToMovieDTO(movieObject);
                if (!(await CreateMovie(movieDTO)))
                {
                    return(false);
                }
            }

            MovieTagUser movieTagUser = new MovieTagUser();

            movieTagUser.ImdbId   = taggingDTO.MovieId;
            movieTagUser.TagName  = taggingDTO.TagName;
            movieTagUser.UserId   = taggingDTO.UserId;
            movieTagUser.IsUpvote = taggingDTO.IsUpvote;
            if (_repo.MovieTagUserExists(movieTagUser))
            {
                _repo.UpdateMovieTagUser(movieTagUser);
            }
            else
            {
                _repo.AddMovieTagUser(movieTagUser);
            }
            return(true);
        }
Esempio n. 2
0
        public async Task <MovieDTO> GetMovie(string movieId)
        {
            if (_repo.MovieExists(movieId))
            {
                Movie movie = _repo.GetMovieFullInfo(movieId);

                var tagNamesToRemove = new List <string>();
                foreach (var movieTag in movie.MovieTags)
                {
                    var tag = _repo.GetTag(movieTag.TagName);
                    if (tag == null || tag.IsBanned)
                    {
                        tagNamesToRemove.Add(movieTag.TagName);
                    }
                }
                foreach (var tagNameToRemove in tagNamesToRemove)
                {
                    movie.MovieTags.Remove(movie.MovieTags.First(mt => mt.TagName == tagNameToRemove));
                }

                return(Mapper.MovieToMovieDTO(movie));
            }

            ApiHelper.MovieObject movieObject = await ApiHelper.ApiProcessor.LoadMovieAsync(movieId);

            if (movieObject == null || movieObject.imdbID != movieId)
            {
                return(null);
            }
            return(Mapper.MovieObjectToMovieDTO(movieObject));
        }
Esempio n. 3
0
        /// <summary>
        /// Returns a new MovieDTO object containing the information provided in
        /// the MovieObject
        /// </summary>
        /// <param name="movieObject"></param>
        /// <returns></returns>
        public static MovieDTO MovieObjectToMovieDTO(ApiHelper.MovieObject movieObject)
        {
            var movieDTO = new MovieDTO()
            {
                ImdbId         = movieObject.imdbID,
                Title          = movieObject.Title,
                ReleaseCountry = movieObject.Country,
                Plot           = movieObject.Plot,
                PosterURL      = movieObject.Poster,
                RatingName     = movieObject.Rated
            };

            try {
                movieDTO.ReleaseDate = DateTime.Parse(movieObject.Released).ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
                movieDTO.IsReleased  = true;
            }
            catch {
                movieDTO.ReleaseDate = null;
                movieDTO.IsReleased  = false;
            }

            try {
                string runtimeMinutes = movieObject.RunTime.Split(' ')[0];
                movieDTO.RuntimeMinutes = short.Parse(runtimeMinutes);
            }
            catch {
                movieDTO.RuntimeMinutes = null;
            }

            movieDTO.MovieActors = movieObject.Actors.Split(',').ToList();
            for (int i = 0; i < movieDTO.MovieActors.Count; i++)
            {
                movieDTO.MovieActors[i] = movieDTO.MovieActors[i].Trim();
            }

            movieDTO.MovieDirectors = movieObject.Director.Split(',').ToList();
            for (int i = 0; i < movieDTO.MovieDirectors.Count; i++)
            {
                movieDTO.MovieDirectors[i] = movieDTO.MovieDirectors[i].Trim();
            }

            movieDTO.MovieGenres = movieObject.Genre.Split(',').ToList();
            for (int i = 0; i < movieDTO.MovieGenres.Count; i++)
            {
                movieDTO.MovieGenres[i] = movieDTO.MovieGenres[i].Trim();
            }

            movieDTO.MovieLanguages = movieObject.Language.Split(',').ToList();
            for (int i = 0; i < movieDTO.MovieLanguages.Count; i++)
            {
                movieDTO.MovieLanguages[i] = movieDTO.MovieLanguages[i].Trim();
            }

            movieDTO.MovieTags = new List <string>();

            return(movieDTO);
        }
Esempio n. 4
0
        public async Task <bool> AppendMovie(string movieId, MovieDTO movieDTO)
        {
            if (!_repo.MovieExists(movieId))
            {
                ApiHelper.MovieObject movieObject = await ApiHelper.ApiProcessor
                                                    .LoadMovieAsync(movieId);

                if (movieObject == null)
                {
                    return(false);
                }
                MovieDTO newMovieDTO = Mapper.MovieObjectToMovieDTO(movieObject);
                if (!(await CreateMovie(newMovieDTO)))
                {
                    return(false);
                }
            }

            Movie movie = _repo.GetMovie(movieId);

            if (movie == null)
            {
                return(false);
            }

            AppendMoviesOptionalProperties(movie, movieDTO);

            _repo.UpdateMovie(movie);

            if (movieDTO.MovieActors != null)
            {
                foreach (var movieActorName in movieDTO.MovieActors)
                {
                    if (!_repo.MovieActorExists(movieId, movieActorName))
                    {
                        if (!_repo.AddMovieActor(movieId, movieActorName))
                        {
                            return(false);
                        }
                    }
                }
            }
            if (movieDTO.MovieDirectors != null)
            {
                foreach (var movieDirectorName in movieDTO.MovieDirectors)
                {
                    if (!_repo.MovieDirectorExists(movieId, movieDirectorName))
                    {
                        if (!_repo.AddMovieDirector(movieId, movieDirectorName))
                        {
                            return(false);
                        }
                    }
                }
            }
            if (movieDTO.MovieGenres != null)
            {
                foreach (var movieGenreName in movieDTO.MovieGenres)
                {
                    if (!_repo.MovieGenreExists(movieId, movieGenreName))
                    {
                        if (!_repo.AddMovieGenre(movieId, movieGenreName))
                        {
                            return(false);
                        }
                    }
                }
            }
            if (movieDTO.MovieLanguages != null)
            {
                foreach (var movieLanguageName in movieDTO.MovieLanguages)
                {
                    if (!_repo.MovieLanguageExists(movieId, movieLanguageName))
                    {
                        if (!_repo.AddMovieLanguage(movieId, movieLanguageName))
                        {
                            return(false);
                        }
                    }
                }
            }
            return(true);
        }