Beispiel #1
0
        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."
            });
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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
            });
        }
Beispiel #4
0
        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 ?? ""
            });
        }