public async Task <Result <bool> > Import([FromBody] InternalMovie movie) { try { if (string.IsNullOrEmpty(movie.Title)) { Response.StatusCode = (int)HttpStatusCode.BadRequest; return(new Result <bool> { Data = false, ResultCode = (int)CoreCodes.MalformedRequest, ResultMessage = "The title cannot be empty." }); } await new MovieService().Import(movie); } catch (InternalException ex) { if (ex.ErrorCode == (int)CoreCodes.AlreadyImported) { Response.StatusCode = (int)HttpStatusCode.Conflict; return(new Result <bool> { Data = false, ResultCode = ex.ErrorCode, ResultMessage = ex.ErrorMessage }); } } catch (Exception e) { Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(new Result <bool> { Data = false, ResultCode = (int)CoreCodes.CommonGenericError, ResultMessage = "Common Generic Error -- " + e.Message }); } return(new Result <bool> { Data = true, ResultCode = (int)CoreCodes.NoError, ResultMessage = "Successfully imported." }); }
public async Task Import(InternalMovie movie) { var internalMovie = await new TmdbParser().GetMovieFromTmdb(movie.Title); var movieFromOmdb = await new OmdbParser().GetMovieFromOmdb(movie.Title); //Merge all the movies together if (movieFromOmdb != null && internalMovie != null && internalMovie.ImdbId == movieFromOmdb.ImdbId) { internalMovie = Merge(internalMovie, movieFromOmdb); } //EZT ÁT KÉNE RAKNI AZ ELEJÉRE HOGY NE LEGYEN MERGELGETÉS MEG ILYENEK ÉS AKKOR UGORJON KI HA MÁR BENNEVAN var mongoMovie = new InternalToMongo().Movie(internalMovie); if (await _repo.CheckIfMovieExistInMongo(mongoMovie)) { throw new InternalException(602, "Movie already exist in DB."); } await _repo.Import(mongoMovie); }
private InternalMovie Merge(InternalMovie tmdbMovie, InternalMovie omdbMovie) { //budget long?budget = 0; if (tmdbMovie.Budget > 0) { budget = tmdbMovie.Budget; } else { budget = omdbMovie.Budget; } //popularity double?popularity = 0; if (tmdbMovie.Popularity > 0) { popularity = tmdbMovie.Popularity; } else { popularity = omdbMovie.Popularity; } //revenue long?revenue = 0; if (tmdbMovie.Revenue > 0) { revenue = tmdbMovie.Revenue; } else { revenue = omdbMovie.Revenue; } //revenue int?runtime = 0; if (tmdbMovie.Runtime > 0) { runtime = tmdbMovie.Runtime; } else { runtime = omdbMovie.Runtime; } //vote average double?voteavg = 0; if (tmdbMovie.VoteAverage > 0) { voteavg = tmdbMovie.VoteAverage; } else { voteavg = omdbMovie.VoteAverage; } //votecount int?voteCount = 0; if (tmdbMovie.VoteCount > 0) { voteCount = tmdbMovie.VoteCount; } else { voteCount = omdbMovie.VoteCount; } return(new InternalMovie { //TMDB RÉSZ Title = tmdbMovie.Title ?? omdbMovie.Title, Adult = tmdbMovie.Adult ? omdbMovie.Adult : tmdbMovie.Adult, BackdropPath = tmdbMovie.BackdropPath ?? omdbMovie.BackdropPath, BelongsToCollection = tmdbMovie.BelongsToCollection ?? omdbMovie.BelongsToCollection, Budget = budget, Genres = tmdbMovie.Genres ?? omdbMovie.Genres, Homepage = tmdbMovie.Homepage ?? omdbMovie.Homepage, TmdbId = tmdbMovie.TmdbId, ImdbId = tmdbMovie.ImdbId ?? omdbMovie.ImdbId, OriginalLanguage = tmdbMovie.OriginalLanguage ?? omdbMovie.OriginalLanguage, OriginalTitle = tmdbMovie.OriginalTitle ?? omdbMovie.OriginalTitle, Overview = tmdbMovie.Overview ?? omdbMovie.Overview, Popularity = popularity, PosterPath = tmdbMovie.PosterPath ?? omdbMovie.PosterPath, ProductionCompanies = tmdbMovie.ProductionCompanies ?? omdbMovie.ProductionCompanies, ProductionCountries = tmdbMovie.ProductionCountries ?? omdbMovie.ProductionCountries, ReleaseDate = tmdbMovie.ReleaseDate ?? omdbMovie.ReleaseDate, Revenue = revenue, Runtime = runtime, SpokenLanguages = tmdbMovie.SpokenLanguages ?? omdbMovie.SpokenLanguages, Status = tmdbMovie.Status ?? omdbMovie.Status, Tagline = tmdbMovie.Tagline ?? omdbMovie.Tagline, VoteAverage = voteavg, VoteCount = voteCount, //OMDB RÉSZ Year = omdbMovie.Year, Rated = omdbMovie.Rated, Director = omdbMovie.Director, Writer = omdbMovie.Writer, Actors = omdbMovie.Actors, Awards = omdbMovie.Awards, Ratings = omdbMovie.Ratings, Metascore = omdbMovie.Metascore, ImdbRating = omdbMovie.ImdbRating, ImdbVotes = omdbMovie.ImdbVotes, Type = omdbMovie.Type, DVD = omdbMovie.DVD, Production = omdbMovie.Production, Website = omdbMovie.Website }); }
public MongoMovie Movie(InternalMovie internalMovie) { var collection = new Collection(); if (internalMovie.BelongsToCollection != null) { collection = Collection(internalMovie.BelongsToCollection); } var genres = new List <Genre>(); if (internalMovie.Genres != null) { genres = Genre(internalMovie.Genres); } var prodComps = new List <ProductionCompany>(); if (internalMovie.ProductionCompanies != null) { prodComps = ProdCompanies(internalMovie.ProductionCompanies); } var prodCountries = new List <ProductionCountry>(); if (internalMovie.ProductionCountries != null) { prodCountries = ProdCountries(internalMovie.ProductionCountries); } var langs = new List <Language>(); if (internalMovie.SpokenLanguages != null) { langs = SpokenLanguages(internalMovie.SpokenLanguages); } var ratings = new List <Rating>(); if (internalMovie.Ratings != null) { ratings = Rating(internalMovie.Ratings); } return(new MongoMovie { Title = internalMovie.Title ?? "", Adult = internalMovie.Adult, BackdropPath = internalMovie.BackdropPath ?? "", BelongsToCollection = collection, Budget = internalMovie.Budget ?? 0, Genres = genres, Homepage = internalMovie.Homepage ?? "", TmdbId = internalMovie.TmdbId, ImdbId = internalMovie.ImdbId, OriginalLanguage = internalMovie.OriginalLanguage ?? "", OriginalTitle = internalMovie.OriginalTitle ?? "", Overview = internalMovie.Overview ?? "", Popularity = internalMovie.Popularity, PosterPath = internalMovie.PosterPath ?? "", ProductionCompanies = prodComps, ProductionCountries = prodCountries, ReleaseDate = internalMovie.ReleaseDate ?? "", Revenue = internalMovie.Revenue, Runtime = internalMovie.Runtime, SpokenLanguages = langs, Status = internalMovie.Status ?? "", Tagline = internalMovie.Tagline ?? "", VoteAverage = internalMovie.VoteAverage, VoteCount = internalMovie.VoteCount, //OMDB RÉSZE ÁTALAKÍTÁS Year = internalMovie.Year, Rated = internalMovie.Rated ?? "", Director = internalMovie.Director ?? "", Writer = internalMovie.Writer ?? new List <string>(), Actors = internalMovie.Actors ?? new List <string>(), Awards = internalMovie.Awards ?? new List <string>(), Ratings = ratings, Metascore = internalMovie.Metascore ?? "", ImdbRating = internalMovie.ImdbRating, ImdbVotes = internalMovie.ImdbVotes ?? "", Type = internalMovie.Type ?? "", DVD = internalMovie.DVD ?? "", Production = internalMovie.Production ?? "", Website = internalMovie.Website ?? "" }); }