public void calcRating(MovieImporter importer, TVTProgramme movie)
        {
            var tmdbMovieDetails = importer.GetTmdbDetails(movie);
            var tomatoeDetails   = importer.GetTomatoeDetails(movie);


            if (tomatoeDetails == null)
            {
                //TODO was machen
                return;
            }

            var reviewerRate       = tomatoeDetails.Ratings.First(x => x.Type == "critics_score");
            var audienceRate1      = tomatoeDetails.Ratings.First(x => x.Type == "audience_score");
            var audienceRate2      = tmdbMovieDetails.vote_average * 10;
            var audiencePopularity = tmdbMovieDetails.popularity * 20;

            //CriticRate = Kritikerwertung
            movie.CriticsRate = Convert.ToInt32(reviewerRate.Score * 2.55);

            //SpeedRate = Nutzerwertung (+ Popularität)
            movie.ViewersRate = Convert.ToInt32((audienceRate1.Score * 0.45 + audienceRate2 * 0.45 + audiencePopularity * 0.1) * 2.55);

            //Kinokasse = Einnahmen usw. und Popularität (wenn Populär dann haben es auch meist viele gesehen)
            int boxOfficeFallback = 0;

            if (tmdbMovieDetails.revenue > 0 && tmdbMovieDetails.budget > 0)
            {
                var benefit = ((tmdbMovieDetails.revenue / tmdbMovieDetails.budget) - 1) * 20;
                if (benefit > 100)
                {
                    benefit = 100;
                }
                else if (benefit < 0)
                {
                    benefit = 0;
                }

                boxOfficeFallback = Convert.ToInt32((benefit * 0.8 + audiencePopularity * 0.2) * 2.55);
            }
            else
            {
                boxOfficeFallback = 75 + Convert.ToInt32((audienceRate1.Score * 0.1 + audiencePopularity * 0.9) * 1.5);
            }


            var topRevenue = MovieStatistics.TopRevenue(movie.Year);

            if (topRevenue.HasValue && tmdbMovieDetails.revenue > 0)
            {
                var boxOfficeTemp = tmdbMovieDetails.revenue / (topRevenue.Value * 0.9);
                movie.BoxOfficeRate = Convert.ToInt32((boxOfficeTemp * 0.8 + 1 * 0.2) * 255);
                movie.BoxOfficeRate = Convert.ToInt32(movie.BoxOfficeRate * 0.8 + boxOfficeFallback * 0.2);
            }
            else
            {
                movie.BoxOfficeRate = boxOfficeFallback;
            }
        }
Beispiel #2
0
 public TmdbMovie GetMovieResult(TVTProgramme movie)
 {
     if (movie.TmdbId.HasValue)
     {
         return(ImdbMovies[movie.TmdbId.Value]);
     }
     else
     {
         return(null);
     }
 }
Beispiel #3
0
        private List <TVTProgramme> GenerateTVTMovies(List <MovieResult> TmdbList)
        {
            var result = new List <TVTProgramme>();
            var filler = new FillMovieExtended();

            foreach (var entry in TmdbList)
            {
                var movie = new TVTProgramme();
                Console.WriteLine("Load details '{0}'", entry.title);
                filler.LoadDetailsFromTmDB(this, movie, entry);
                result.Add(movie);
            }
            return(result);
        }
Beispiel #4
0
 public TomatoMovie GetTomatoeDetails(TVTProgramme movie)
 {
     if (movie.RottenTomatoesId.HasValue && RottenTomatoeMovies.ContainsKey(movie.RottenTomatoesId.Value))
     {
         return(RottenTomatoeMovies[movie.RottenTomatoesId.Value]);
     }
     else
     {
         var imdbClean = movie.ImdbId;
         if (imdbClean.StartsWith("tt"))
         {
             imdbClean = imdbClean.Substring(2);
         }
         var tomatoeDetails = ServiceApi.TomatoApi.FindMovieByImdbId(imdbClean);
         RottenTomatoeMovies.Add(tomatoeDetails.RottenTomatoesId, tomatoeDetails);
         return(tomatoeDetails);
     }
 }
Beispiel #5
0
        public TmdbMovie GetTmdbDetails(TVTProgramme movie)
        {
            if (!movie.TmdbId.HasValue)
            {
                throw new Exception();
            }

            if (ImdbMovies.ContainsKey(movie.TmdbId.Value))
            {
                return(ImdbMovies[movie.TmdbId.Value]);
            }
            else
            {
                RequestChecker.TmDbReadyOrWait();
                var tmdbMovieDetails = ServiceApi.TmdbApi.GetMovieInfo(movie.TmdbId.Value, "de");
                ImdbMovies.Add(movie.TmdbId.Value, tmdbMovieDetails);
                return(tmdbMovieDetails);
            }
        }
        public void AssertProgrammes(TVTProgramme prog1, TVTProgramme prog2, TestMode testMode)
        {
            AssertEntity(prog1, prog2, testMode);

            Assert.AreEqual(prog1.TitleDE, prog2.TitleDE);
            Assert.AreEqual(prog1.TitleEN, prog2.TitleEN);
            Assert.AreEqual(prog1.DescriptionDE, prog2.DescriptionDE);
            Assert.AreEqual(prog1.DescriptionEN, prog2.DescriptionEN);

            Assert.AreEqual(prog1.ProductType, prog2.ProductType);
            Assert.AreEqual(prog1.ProgrammeType, prog2.ProgrammeType);
            Assert.AreEqual(prog1.FakeTitleDE, prog2.FakeTitleDE);
            Assert.AreEqual(prog1.FakeTitleEN, prog2.FakeTitleEN);
            Assert.AreEqual(prog1.FakeDescriptionDE, prog2.FakeDescriptionDE);
            Assert.AreEqual(prog1.FakeDescriptionEN, prog2.FakeDescriptionEN);

            Assert.AreEqual(prog1.DescriptionMovieDB, prog2.DescriptionMovieDB);
            Assert.AreEqual(prog1.Staff, prog2.Staff);
            Assert.AreEqual(prog1.BettyBonus, prog2.BettyBonus);
            Assert.AreEqual(prog1.PriceMod, prog2.PriceMod);
            Assert.AreEqual(prog1.CriticsRate, prog2.CriticsRate);
            Assert.AreEqual(prog1.ViewersRate, prog2.ViewersRate);
            Assert.AreEqual(prog1.BoxOfficeRate, prog2.BoxOfficeRate);
            Assert.AreEqual(prog1.Country, prog2.Country);
            Assert.AreEqual(prog1.Year, prog2.Year);
            Assert.AreEqual(prog1.DistributionChannel, prog2.DistributionChannel);
            Assert.AreEqual(prog1.MainGenre, prog2.MainGenre);
            Assert.AreEqual(prog1.SubGenre, prog2.SubGenre);
            Assert.AreEqual(prog1.Blocks, prog2.Blocks);
            Assert.AreEqual(prog1.LiveHour, prog2.LiveHour);
            Assert.AreEqual(prog1.Flags, prog2.Flags);
            Assert.AreEqual(prog1.TargetGroups, prog2.TargetGroups);
            AssertExt.AreCollectionEqual(prog1.ProPressureGroups, prog2.ProPressureGroups);
            AssertExt.AreCollectionEqual(prog1.ContraPressureGroups, prog2.ContraPressureGroups);
            Assert.AreEqual(prog1.ImdbId, prog2.ImdbId);
            Assert.AreEqual(prog1.TmdbId, prog2.TmdbId);
            Assert.AreEqual(prog1.RottenTomatoesId, prog2.RottenTomatoesId);
            Assert.AreEqual(prog1.ImageUrl, prog2.ImageUrl);
        }
 public void AddProgramme(TVTProgramme movie)
 {
     ProgrammeData.Add(movie);
 }
        public void MergeProgrammeData(TVTProgramme target, TVTProgramme leading, bool mergeStaffOnlyWhenEmpty = false)
        {
            //new List<string>() { "Staff", "Children", "SeriesMaster", "MasterId" }

            var type = typeof(TVTProgramme);

            foreach (var property in type.GetProperties())
            {
                if (property.Name == "Staff")
                {
                    if (!mergeStaffOnlyWhenEmpty || (target.Staff == null || target.Staff.Count == 0))
                    {
                        target.Staff.Clear();

                        foreach (var member in leading.Staff)
                        {
                            var person = FindPersonMatch(member.Person);

                            if (person == null)
                            {
                                if (member.Person.FakeLastName != "-" && member.Person.FakeLastName != "XXX")
                                {
                                    person = new TVTPerson();
                                    person.GenerateGuid();
                                    CopyPropertyValues <TVTPerson>(person, member.Person);
                                    person.IsNew     = true;
                                    person.IsChanged = true;
                                    LeadingDatabase.AddPerson(person);
                                }
                            }

                            if (person != null)
                            {
                                target.Staff.Add(new TVTStaff(person, member.Function, member.Index));
                            }
                        }
                    }
                }
                else if (property.Name == "Children")
                {
                    if (target.ProductType == TVTProductType.Series || target.ProductType == TVTProductType.Bundle)
                    {
                        if (target.Children != null)
                        {
                            target.Children.Clear();
                        }
                        else
                        {
                            target.Children = new List <TVTProgramme>();
                        }

                        foreach (var child in leading.Children)
                        {
                            var episode = FindProgrammeMatch(child);

                            if (episode == null)
                            {
                                episode = new TVTProgramme();
                                episode.GenerateGuid();
                                MergeProgrammeData(episode, child);
                                episode.IsNew = true;
                                LeadingDatabase.AddProgramme(episode);
                            }

                            if (episode != null)
                            {
                                episode.SeriesMaster = new WeakReference <TVTProgramme>(target);
                                episode.MasterId     = target.Id.ToString();
                                episode.IsChanged    = true;
                                target.Children.Add(episode);
                            }
                        }
                    }
                }
                else if (property.Name == "Children" || property.Name == "SeriesMaster" || property.Name == "MasterId")
                {
                    //TODO: Später mehr
                }
                else
                {
                    if (property.Name != "Id")
                    {
                        if (property.CanWrite && property.CanRead)
                        {
                            property.SetValue(target, property.GetValue(leading, null), null);
                        }
                    }
                }
            }
        }
        public TVTProgramme FindProgrammeMatch(TVTProgramme other)
        {
            var allProgrammes = LeadingDatabase.GetAllProgrammes(true, true);

            var programme = allProgrammes.FirstOrDefault(x => x.Id == other.Id);

            if (programme != null)
            {
                return(programme);
            }

            if (other.TmdbId > 0)
            {
                programme = allProgrammes.FirstOrDefault(x => x.TmdbId == other.TmdbId);
                if (programme != null)
                {
                    return(programme);
                }
            }

            var results1 = allProgrammes.Where(x => x.FakeTitleDE == other.FakeTitleDE || x.TitleDE == other.FakeTitleDE);

            if (results1.Count() == 1)
            {
                return(results1.First());
            }
            else
            {
                var director = other.Staff != null?other.Staff.FirstOrDefault(y => y.Function == TVTPersonFunction.Director) : null;

                var direcLastName = director != null ? director.Person.FakeLastName : "unpassend";

                var results2 = allProgrammes.Where(new Func <TVTProgramme, bool>(x =>
                {
                    var xI     = x.GetInheritedEntity();
                    var otherI = other.GetInheritedEntity();

                    if (xI.Year != otherI.Year)
                    {
                        return(false);
                    }

                    if (xI.MainGenre != otherI.MainGenre)
                    {
                        return(false);
                    }

                    if (x.ProductType != otherI.ProductType)
                    {
                        return(false);
                    }

                    if (x.ProductType == TVTProductType.Episode)
                    {
                        if (x.EpisodeIndex != otherI.EpisodeIndex)
                        {
                            return(false);
                        }
                    }

                    if (xI.CriticsRate == otherI.CriticsRate && xI.ViewersRate == otherI.ViewersRate && xI.BoxOfficeRate == otherI.BoxOfficeRate)
                    {
                        return(true);
                    }

                    var directorTemp = xI.Staff != null ? xI.Staff.FirstOrDefault(z => z.Function == TVTPersonFunction.Director) : null;
                    if (directorTemp != null && directorTemp.Person != null)
                    {
                        if (directorTemp.Person.FakeLastName != direcLastName && directorTemp.Person.LastName != direcLastName)
                        {
                            return(false);
                        }
                    }
                    else
                    {
                        return(false);
                    }

                    return(true);
                }));

                if (results2.Count() == 0)
                {
                    System.Diagnostics.Trace.WriteLine("Not found: " + other.FakeTitleDE);
                }
                else if (results2.Count() == 1)
                {
                    return(results2.First());
                }
                else
                {
                    System.Diagnostics.Trace.WriteLine("Found more then one: " + other.FakeTitleDE);
                }
            }

            return(null);
        }
        public static void ConvertGenreAndFlags(TVTProgramme movie, MovieOldV2 movieOld)
        {
            switch (movieOld.genre)
            {
            case 0:                      //action
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Action;
                break;

            case 1:                      //thriller
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Thriller;
                break;

            case 2:                      //sci-fi
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.SciFi;
                break;

            case 3:                      //comedy
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Comedy;
                break;

            case 4:                      //horror
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Horror;
                break;

            case 5:                      //love
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Romance;
                break;

            case 6:                      //erotic
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Erotic;
                break;

            case 7:                      //western
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Western;
                break;

            case 8:                      //live
                movie.ProgrammeType = TVTProgrammeType.Event;
                movie.Flags.Add(TVTProgrammeFlag.Live);
                break;

            case 9:                      //kidsmovie
                movie.MainGenre = TVTProgrammeGenre.Family;
                movie.TargetGroups.Add(TVTTargetGroup.Children);
                break;

            case 10:                      //cartoon
                movie.MainGenre = TVTProgrammeGenre.Family;
                movie.Flags.Add(TVTProgrammeFlag.Animation);
                break;

            case 11:                      //music
                movie.ProgrammeType = TVTProgrammeType.Event;
                movie.MainGenre     = TVTProgrammeGenre.Music;
                break;

            case 12:                      //sport
                movie.ProgrammeType = TVTProgrammeType.Event;
                movie.MainGenre     = TVTProgrammeGenre.Sport;
                break;

            case 13:                      //culture
                movie.MainGenre = TVTProgrammeGenre.Documentary;
                movie.Flags.Add(TVTProgrammeFlag.Culture);
                break;

            case 14:                      //fantasy
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Fantasy;
                break;

            case 15:                      //yellow press
                movie.ProgrammeType = TVTProgrammeType.Reportage;
                movie.MainGenre     = TVTProgrammeGenre.YellowPress;
                break;

            case 16:                      //news
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.ProgrammeType = TVTProgrammeType.Reportage;
                break;

            case 17:                      //show
                movie.ProgrammeType = TVTProgrammeType.Show;
                movie.MainGenre     = TVTProgrammeGenre.Undefined_Show;
                break;

            case 18:                      //monumental
                movie.ProgrammeType = TVTProgrammeType.Movie;
                movie.MainGenre     = TVTProgrammeGenre.Monumental;
                movie.Flags.Add(TVTProgrammeFlag.Cult);
                break;

            case 19:                      //fillers
                movie.ProgrammeType = TVTProgrammeType.Misc;
                movie.MainGenre     = TVTProgrammeGenre.Undefined;
                movie.Flags.Add(TVTProgrammeFlag.Trash);
                break;

            case 20:                      //paid programing
                movie.ProgrammeType = TVTProgrammeType.Commercial;
                movie.Flags.Add(TVTProgrammeFlag.Paid);
                break;

            default:
                throw new Exception();
            }
        }
        public static void Convert(List <MovieOldV2> moviesOldV2, ITVTDatabase database, TVTDataRoot dataRoot)
        {
            foreach (var movSrc in moviesOldV2)
            {
                if (movSrc.parentID == 0)                   //Film
                {
                    var programme = new TVTProgramme();
                    programme.DataRoot      = dataRoot;
                    programme.ProductType   = TVTProductType.Programme;
                    programme.ProgrammeType = TVTProgrammeType.Movie;
                    programme.Approved      = movSrc.approved;

                    ConvertEpisode(movSrc, programme, database);

                    programme.CriticsRate = ConvertOldToNewValue(movSrc.critics);
                    programme.ViewersRate = ConvertOldToNewValue(movSrc.speed);
                    programme.PriceMod    = ((float)movSrc.price) / 150;
                    if (programme.PriceMod == 0.0)
                    {
                        programme.PriceMod = 1;
                    }
                    else if (programme.PriceMod > 10)
                    {
                        programme.PriceMod = 10;
                    }

                    programme.BoxOfficeRate = ConvertOldToNewValue(movSrc.outcome);

                    programme.Year    = movSrc.year;
                    programme.Country = movSrc.country;
                    programme.Blocks  = movSrc.blocks;

                    ConvertGenreAndFlags(programme, movSrc);

                    if (programme.Flags.Contains(TVTProgrammeFlag.Live) && movSrc.time > 0)
                    {
                        programme.LiveHour = movSrc.time;
                    }

                    if (movSrc.xrated)
                    {
                        programme.Flags.Add(TVTProgrammeFlag.XRated);
                    }

                    database.AddProgramme(programme);
                }
                else                 //Serien-Episode
                {
                    var episode = new TVTProgramme();
                    episode.DataRoot      = dataRoot;
                    episode.ProductType   = TVTProductType.Episode;
                    episode.ProgrammeType = TVTProgrammeType.Movie;
                    episode.Approved      = movSrc.approved;
                    ConvertEpisode(movSrc, episode, database);

                    episode.Tag = movSrc.parentID.ToString();

                    episode.CriticsRate = ConvertOldToNewValue(movSrc.critics);
                    if (episode.CriticsRate == 0)
                    {
                        episode.CriticsRate = -1;
                    }
                    episode.ViewersRate = ConvertOldToNewValue(movSrc.speed);
                    if (episode.ViewersRate == 0)
                    {
                        episode.ViewersRate = -1;
                    }
                    episode.EpisodeIndex = movSrc.episode;

                    episode.DistributionChannel = TVTDistributionChannel.Inherit;
                    episode.MainGenre           = TVTProgrammeGenre.Inherit;
                    episode.SubGenre            = TVTProgrammeGenre.Inherit;
                    episode.Flags.Add(TVTProgrammeFlag.Inhert);

                    episode.LiveHour = -1;

                    episode.TargetGroups.Add(TVTTargetGroup.Inhert);
                    episode.ProPressureGroups.Add(TVTPressureGroup.Inhert);
                    episode.ContraPressureGroups.Add(TVTPressureGroup.Inhert);

                    database.AddProgramme(episode);
                }
            }

            //Nachträglich die Parents auf IsSeries setzen
            var allMovies = database.GetAllProgrammes(true);

            foreach (var current in database.GetAllEpisodes())
            {
                var series = allMovies.FirstOrDefault(x => x.OldId.CompareTo(current.Tag) == 0);
                if (series != null)
                {
                    series.ProductType   = TVTProductType.Series;
                    current.SeriesMaster = new CodeKnight.Core.WeakReference <TVTProgramme>(series);
                }
                else
                {
                    current.DataStatus = TVTDataStatus.Incorrect;
                }
            }
        }
        public void LoadDetailsFromTmDB(MovieImporter importer, TVTProgramme movie, MovieResult tmdbMovie)
        {
            movie.TmdbId  = tmdbMovie.id;
            movie.TitleDE = tmdbMovie.title;
            movie.TitleEN = tmdbMovie.original_title;

            var tmdbMovieDetails = importer.GetTmdbDetails(movie);

            movie.ImdbId = tmdbMovieDetails.imdb_id;

            var tomatoeDetails = importer.GetTomatoeDetails(movie);

            movie.RottenTomatoesId = tomatoeDetails.RottenTomatoesId;



            RequestChecker.TmDbReadyOrWait();
            var tmdbMovieCast = ServiceApi.TmdbApi.GetMovieCast(tmdbMovie.id);



            movie.TitleDE                 = tmdbMovie.title;
            movie.TitleEN                 = tmdbMovieDetails.original_title;
            movie.DescriptionMovieDB      = tmdbMovieDetails.tagline;
            movie.TmdbId                  = tmdbMovie.id;
            movie.ImdbId                  = tmdbMovieDetails.imdb_id;
            movie.ImageUrl                = @"https://d3gtl9l2a4fn1j.cloudfront.net/t/p/original" + tmdbMovieDetails.backdrop_path;
            movie.MovieAdditional.Budget  = tmdbMovieDetails.budget;
            movie.MovieAdditional.Revenue = tmdbMovieDetails.revenue;


            var castCounter = 1;

            movie.Staff = new IndexingList <TVTStaff>();
            foreach (var cast in tmdbMovieCast.cast)
            {
                if (castCounter > 3)
                {
                    break;
                }

                var person = importer.RegisterActor(cast);
                if (person != null)
                {
                    movie.Staff.Add(new TVTStaff(person, TVTPersonFunction.Actor));
                }

                castCounter++;
            }

            foreach (var crew in tmdbMovieCast.crew)
            {
                if (crew.department != "Directing")
                {
                    break;
                }

                var person = importer.RegisterDirector(crew);
                movie.Staff.Add(new TVTStaff(person, TVTPersonFunction.Director));

                break;
            }

            foreach (var currCountry in tmdbMovieDetails.production_countries)
            {
                if (movie.Country == null)
                {
                    movie.Country = currCountry.iso_3166_1;
                }
                else
                {
                    movie.Country = currCountry.iso_3166_1 + ", " + currCountry.iso_3166_1;
                }
            }

            movie.Year = DateTime.Parse(tmdbMovieDetails.release_date).Year;

            var genreChecker = new GenreChecker();

            movie.MainGenre = genreChecker.GetGenre(tmdbMovieDetails.genres);
            //TODO: Subgenre

            var runtime = tmdbMovieDetails.runtime;

            if (runtime == 0)
            {
                if (tomatoeDetails != null && tomatoeDetails.Runtime.HasValue)
                {
                    runtime = tomatoeDetails.Runtime.Value;
                }
                else
                {
                    runtime = 120;                     //Dann 2 Blocks
                }
            }

            if (runtime < 85)
            {
                movie.Blocks = 1;
            }
            else if (runtime < 145)
            {
                movie.Blocks = 2;
            }
            else if (runtime < 205)
            {
                movie.Blocks = 3;
            }
            else if (runtime < 265)
            {
                movie.Blocks = 4;
            }
            else
            {
                movie.Blocks = 5;
            }

            //priceRate = 10;
            //criticRate = 11;
            //speedRate = 12;
            //boxOfficeRate = 13;
        }
Beispiel #13
0
        public static TVTProgramme GetIconicProgramme()
        {
            var programme = new TVTProgramme();

            programme.GenerateGuid();
            programme.OldId        = "110";
            programme.DataType     = TVTDataType.Undefined;
            programme.DataStatus   = TVTDataStatus.Approved;
            programme.DataRoot     = TVTDataRoot.MadTV;
            programme.DataUsage    = TVTDataUsage.MadTVOriginal;
            programme.Approved     = true;
            programme.CreatorId    = "creatorX";
            programme.EditorId     = "editorY";
            programme.LastModified = DateTime.Now.AddDays(-1);
            programme.IsNew        = true;
            programme.IsChanged    = true;

            programme.TitleDE       = "ValueA";
            programme.TitleEN       = "ValueB";
            programme.DescriptionDE = "ValueC";
            programme.DescriptionEN = "ValueD";

            programme.ProductType        = TVTProductType.Programme;
            programme.ProgrammeType      = TVTProgrammeType.Reportage;
            programme.FakeTitleDE        = "fakeA";
            programme.FakeTitleEN        = "fakeB";
            programme.FakeDescriptionDE  = "fakeDescA";
            programme.FakeDescriptionEN  = "fakeDescB";
            programme.DescriptionMovieDB = "hkh";

            var personA = GetMinimalPerson("PersA", "PersALast");
            var personB = GetMinimalPerson("PersB", "PersBLast");
            var personC = GetMinimalPerson("PersC", "PersCLast");

            programme.Staff.Add(new TVTStaff(personA, TVTPersonFunction.Actor));
            programme.Staff.Add(new TVTStaff(personB, TVTPersonFunction.Actor));
            programme.Staff.Add(new TVTStaff(personC, TVTPersonFunction.Director));

            programme.BettyBonus    = 11;
            programme.PriceMod      = (float)1.22;
            programme.CriticsRate   = 33;
            programme.ViewersRate   = 44;
            programme.BoxOfficeRate = 55;

            programme.Country             = "FR";
            programme.Year                = 1952;
            programme.DistributionChannel = TVTDistributionChannel.Auction;

            programme.MainGenre = TVTProgrammeGenre.Drama;
            programme.SubGenre  = TVTProgrammeGenre.Fantasy;

            programme.Blocks   = 3;
            programme.LiveHour = 20;

            programme.Flags.Add(TVTProgrammeFlag.Cult);
            programme.Flags.Add(TVTProgrammeFlag.BMovie);

            programme.TargetGroups.Add(TVTTargetGroup.Manager);
            programme.TargetGroups.Add(TVTTargetGroup.Pensioners);

            programme.ProPressureGroups = new List <TVTPressureGroup>();
            programme.ProPressureGroups.Add(TVTPressureGroup.AntiSmoker);
            programme.ProPressureGroups.Add(TVTPressureGroup.ArmsLobby);
            programme.ContraPressureGroups = new List <TVTPressureGroup>();
            programme.ContraPressureGroups.Add(TVTPressureGroup.Capitalists);
            programme.ContraPressureGroups.Add(TVTPressureGroup.Communists);

            programme.ImdbId           = "pp";
            programme.TmdbId           = 55;
            programme.RottenTomatoesId = 99;
            programme.ImageUrl         = "urlX";

            return(programme);
        }
Beispiel #14
0
        private void btnMerge_Click(object sender, EventArgs e)
        {
            if (movieDataGrid.SelectedRows.Count == 2)
            {
                var movie1 = movieDataGrid.SelectedRows[0].DataBoundItem as TVTProgramme;
                var movie2 = movieDataGrid.SelectedRows[1].DataBoundItem as TVTProgramme;

                TVTProgramme imported = null;
                TVTProgramme fake     = null;

                if (movie1.TmdbId > 0)
                {
                    imported = movie1;
                    fake     = movie2;
                }

                if (movie2.TmdbId > 0)
                {
                    if (imported != null)
                    {
                        throw new Exception();
                    }

                    imported = movie2;
                    fake     = movie1;
                }

                if (imported == null)
                {
                    throw new Exception();
                }

                if (fake == null)
                {
                    throw new Exception();
                }

                imported.FakeTitleDE   = fake.FakeTitleDE;
                imported.DescriptionDE = fake.DescriptionDE;

                imported.MovieAdditional.PriceRateOld     = fake.PriceMod;
                imported.MovieAdditional.CriticRateOld    = fake.CriticsRate;
                imported.MovieAdditional.SpeedRateOld     = fake.ViewersRate;
                imported.MovieAdditional.BoxOfficeRateOld = fake.BoxOfficeRate;

                //foreach ( var actor in imported.Participants )
                //{
                //    if ( string.IsNullOrEmpty( actor.Info ) )
                //        actor.Info = fake.Participants.Select( x => x.FakeFullName ).ToContentString( " | " );
                //    else
                //        actor.Info = actor.Info + " | " + fake.Participants;
                //}


                //var director = imported.Director;
                //if ( string.IsNullOrEmpty( director.Info ) )
                //    director.Info = fake.Director.FakeFullName;
                //else
                //    director.Info = director.Info + " | " + fake.Director.FakeFullName;

                database.ProgrammeData.Remove(fake);
            }
        }
Beispiel #15
0
        public void B_ReadXMLV2AndMerge()
        {
            System.Diagnostics.Trace.WriteLine(Directory.GetCurrentDirectory());
            Assert.IsTrue(File.Exists("database.xml"));

            var databaseV2 = new TVTDatabase();

            databaseV2.Initialize();

            var persister = new XmlPersisterV2();

            persister.LoadXML("database.xml", databaseV2, TVTDataRoot.V2InUse);

            var sqlDB = new TVTDatabase();

            sqlDB.Initialize();
            sqlDB.Clear();
            using (var connection = TVTSQLSession.GetSessionNewDB())
            {
                string myConnectionString = "SERVER=localhost;" +
                                            "DATABASE=tvtower_new;" +
                                            "UID=TVTowerUser;" +
                                            "PASSWORD=123;";

                var mvSQLDatabase = new TVTSQLDatabase(myConnectionString);
                mvSQLDatabase.FillTVTDatabase(sqlDB);
            }

            var merging = new DatabaseMerging(sqlDB);

            {
                foreach (var currMovie in databaseV2.GetAllProgrammes(true, true))
                {
                    var found = merging.FindProgrammeMatch(currMovie);
                    if (found != null)
                    {
                        merging.MergeProgrammeData(found, currMovie, true);
                        found.DataRoot  = TVTDataRoot.V2InUse;
                        found.IsChanged = true;
                        foreach (var member in found.Staff)
                        {
                            if (member.Person != null)
                            {
                                member.Person.DataRoot  = TVTDataRoot.V2InUse;
                                member.Person.IsChanged = true;
                            }
                        }
                    }
                    else
                    {
                        var newProgramme = new TVTProgramme();
                        newProgramme.GenerateGuid();
                        merging.MergeProgrammeData(newProgramme, currMovie);
                        newProgramme.DataRoot  = TVTDataRoot.V2InUse;
                        newProgramme.IsNew     = true;
                        newProgramme.IsChanged = true;
                        foreach (var member in newProgramme.Staff)
                        {
                            member.Person.DataRoot  = TVTDataRoot.V2InUse;
                            member.Person.IsChanged = true;
                        }
                        sqlDB.AddProgramme(newProgramme);
                    }
                }
            }

            {
                foreach (var currNews in databaseV2.GetAllNews())
                {
                    var found = merging.FindNewsMatchWithV2(currNews);
                    if (found != null)
                    {
                        merging.MergeNewsData(found, currNews, true);
                        found.DataRoot  = TVTDataRoot.V2InUse;
                        found.IsChanged = true;
                    }
                    else
                    {
                        var newNews = new TVTNews();
                        newNews.GenerateGuid();
                        merging.CopyPropertyValues <TVTNews>(newNews, currNews);
                        newNews.DataRoot  = TVTDataRoot.V2InUse;
                        newNews.IsNew     = true;
                        newNews.IsChanged = true;
                        sqlDB.AddNews(newNews);
                    }
                }
            }

            {
                foreach (var currAd in databaseV2.GetAllAdvertisings())
                {
                    var found = merging.FindAdMatchWithV2(currAd);
                    if (found != null)
                    {
                        merging.CopyPropertyValues <TVTAdvertising>(found, currAd);
                        found.DataRoot  = TVTDataRoot.V2InUse;
                        found.IsChanged = true;
                    }
                    else
                    {
                        var newAd = new TVTAdvertising();
                        newAd.GenerateGuid();
                        merging.CopyPropertyValues <TVTAdvertising>(newAd, currAd);
                        newAd.DataRoot  = TVTDataRoot.V2InUse;
                        newAd.IsNew     = true;
                        newAd.IsChanged = true;
                        sqlDB.AddAdvertising(newAd);
                    }
                }
            }

            using (var connection = TVTSQLSession.GetSessionNewDB())
            {
                string myConnectionString = "SERVER=localhost;" +
                                            "DATABASE=tvtower_new;" +
                                            "UID=TVTowerUser;" +
                                            "PASSWORD=123;";

                var mvSQLDatabase = new TVTSQLDatabase(myConnectionString);
                mvSQLDatabase.WriteChangesToDatabase(sqlDB);
            }
        }