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); }
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)); }
/// <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); }
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); }