/// <summary> /// Sukuria visiem duomenims duomenų lentelę /// </summary> /// <param name="filmEnthusiastsContainer"></param> private static void CreateAllReportTables(FilmEnthusiastsContainer filmEnthusiastsContainer) { for (var i = 0; i < filmEnthusiastsContainer.Count; i++) { CreateReportTable(filmEnthusiastsContainer.GetFilmEnthusiast(i), $"L2_{filmEnthusiastsContainer.GetFilmEnthusiast(i).FilmEnthusiastName}_DataTable.txt"); } }
static void Main(string[] args) { Console.WriteLine("IFF-8/8 Matas Vaitkevičius L2-U2-09"); Console.ReadKey(); //Skaitomi failai var filePaths = Directory.GetFiles(Directory.GetCurrentDirectory(), "L2*.csv"); var filmEnthusiastsContainer = new FilmEnthusiastsContainer(); foreach (var path in filePaths) { filmEnthusiastsContainer.AddFilmEnthusiast(ReadFilmEnthusiastData(path)); } //Duomenys sudedami į lentelę CreateAllReportTables(filmEnthusiastsContainer); Console.WriteLine(); //Kiekvieno kino megėjo mėgstamiausias režisierius PrintFavoriteDirector(filmEnthusiastsContainer); Console.ReadKey(); //Sudarytas filmų sąrašas, kuriuos peržiūrėjo visi kino megėjai ir įrašyta į csv failą Console.WriteLine("2.Sudarytas filmų sąrašas, kuriuos peržiūrėjo visi kino megėjai ir įrašyta į csv failą"); Console.WriteLine(); var uniqueMovies = FilterSeenMovies(filmEnthusiastsContainer); WriteMovieData(uniqueMovies, "MatėVisi.csv"); Console.ReadKey(); //Kiekvienam kino megėjui sudarytas rekomenduojamų peržiūrėti filmų sąrašas Console.WriteLine("3.Kiekvienam kino megėjui sudarytas rekomenduojamų peržiūrėti filmų sąrašas ir įrašyta į csv failą"); PrintRecommendedMovies(filmEnthusiastsContainer, uniqueMovies); Console.ReadKey(); }
/// <summary> /// Išspausdina kiekvieno kino megėjo mėgstamiausią režisierių /// </summary> /// <param name="filmEnthusiastsContainer"></param> private static void PrintFavoriteDirector(FilmEnthusiastsContainer filmEnthusiastsContainer) { Console.WriteLine("1.Kiekvieno kino megėjo mėgstamiausi režisieriai"); Console.WriteLine(); for (int i = 0; i < filmEnthusiastsContainer.Count; i++) { var favoriteDirector = FilmEnthusiastFavoriteDirector(filmEnthusiastsContainer.FilmEnthusiasts[i]); Console.WriteLine("| {0,7} | {1,9} | {2,11} |", "Vardas", "Pavardė", "Mėgstamiausias režisierius"); Console.WriteLine($"{filmEnthusiastsContainer.FilmEnthusiasts[i].FilmEnthusiastName,9} " + $"{filmEnthusiastsContainer.FilmEnthusiasts[i].FilmEnthusiastSurname,11}: {favoriteDirector,11}"); Console.WriteLine(); } }
/// <summary> /// Įrašo rekomenduojamus filmus į csv failą /// </summary> /// <param name="filmEnthusiastsContainer"></param> /// <param name="uniqueMovies"></param> private static void PrintRecommendedMovies(FilmEnthusiastsContainer filmEnthusiastsContainer, MoviesContainer uniqueMovies) { for (var i = 0; i < filmEnthusiastsContainer.Count; i++) { var recommendedMovies = FilmEnthusiastsRecommendations(filmEnthusiastsContainer.FilmEnthusiasts[i].MoviesContainer, uniqueMovies); if (recommendedMovies.Count != 0) { WriteMovieData(recommendedMovies, $"Rekomendacija_{filmEnthusiastsContainer.FilmEnthusiasts[i].FilmEnthusiastName}_" + $"{filmEnthusiastsContainer.FilmEnthusiasts[i].FilmEnthusiastSurname}.csv"); } } }
/// <summary> /// Suranda filmus, kuriuos peržiūrėjo visi kino megėjai /// </summary> /// <param name="filmEnthusiastsContainer"></param> /// <returns> Gražina filmus, kuriuos peržiūrėjo visi kino megėjai </returns> private static MoviesContainer FilterSeenMovies(FilmEnthusiastsContainer filmEnthusiastsContainer) { var filteredMovies = new MoviesContainer(); var uniqueMovies = new HashSet <Movie>(); for (var i = 0; i < filmEnthusiastsContainer.Count; i++) { for (int j = 0; j < filmEnthusiastsContainer.FilmEnthusiasts[i].MoviesContainer.Count; j++) { uniqueMovies.Add(filmEnthusiastsContainer.FilmEnthusiasts[i].MoviesContainer.GetMovie(j)); } } foreach (var uniqueMovie in uniqueMovies) { filteredMovies.AddMovie(uniqueMovie); } return(filteredMovies); }