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; } }
public TmdbMovie GetMovieResult(TVTProgramme movie) { if (movie.TmdbId.HasValue) { return(ImdbMovies[movie.TmdbId.Value]); } else { return(null); } }
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); }
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); } }
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; }
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); }
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); } }
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); } }