예제 #1
0
        private static void CreateReportTable(VideoEnthusiast videoEnthusiast, string file)
        {
            for (int i = 0; i < videoEnthusiast.VideosEnthusiastsContainer.Count; i++)
            {
                using (StreamWriter writer = new StreamWriter(@file))
                {
                    writer.WriteLine("Duomenys apie įrašo mėgėją ir jo peržiurėtus įrašus");
                    writer.WriteLine(new string('-', 218));
                    writer.WriteLine("| Vardas: {0, -97} |", videoEnthusiast.VideosEnthusiastsContainer.GetVideoEnthusiast(i).VideoEnthusiastName);
                    writer.WriteLine(new string('-', 218));
                    writer.WriteLine("| Pavardė: {0, -97} |", videoEnthusiast.VideosEnthusiastsContainer.GetVideoEnthusiast(i).VideoEnthusiastSurname);
                    writer.WriteLine(new string('-', 218));
                    writer.WriteLine("| Gimimo metai: {0, -97} |", videoEnthusiast.VideosEnthusiastsContainer.GetVideoEnthusiast(i).YearOfBirth);
                    writer.WriteLine(new string('-', 218));
                    writer.WriteLine("| Miestas: {0, -97} |", videoEnthusiast.VideosEnthusiastsContainer.GetVideoEnthusiast(i).City);
                    writer.WriteLine(new string('-', 218));
                    writer.WriteLine("| {0, -40} | {1,-14} | {2,-30} | {3,-35} | {4,-20} | {5,-20} | {6,-20} | {7,-14} | {8,-14} | {9,-14} | {10,-14} | {11,-14} |",
                                     "Pavadinimas", "Filmo leidimo metai", "Žanras", "Studija", "Filmo režisierius", "Aktorius 1", "Aktorius 2", "Filmo Pelnas", "Serialo pradžios metai", "Serialo pabaigos metai", "Serialo serijų skaičius", "Ar tęsiasi serialas");
                    writer.WriteLine(new string('-', 218));

                    for (int j = 0; j < videoEnthusiast.VideosContainer.Count; j++)
                    {
                        writer.WriteLine(videoEnthusiast.VideosContainer.GetVideo(j));
                    }
                    writer.WriteLine(new string('-', 218));
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Sudaro įrašų sarašą, kuriuos peržiūrėjo visi mėgėjai.
        /// Jeigu nurodytas enthusiastFor parametras, ieško filmų ir serialų, kuriuos matė visi išskyrus nurodytas enthusiastFor
        /// </summary>
        /// <param name="enthusiasts">Įrašų entuziastai</param>
        /// <param name="enthusiastFor">Kinomanas, kuriam sudarom rekomendacijų sarašą</param>
        /// <returns></returns>
        static VideoContainer GetMovies(VideoEnthusiastsContainer enthusiasts, VideoEnthusiast enthusiastFor)
        {
            Video[] allMovies = new Video[1000];
            int     n         = 0;

            // Surenka visus filmus
            for (int i = 0; i < enthusiasts.Count; i++)
            {
                var enthusiast = enthusiasts.Get(i);
                int m;
                var videos = enthusiast.GetUniqueVideos(out m);
                for (int j = 0; j < m; j++)
                {
                    if (!allMovies.Contains(videos[j]))
                    {
                        allMovies[n++] = videos[j];
                    }
                }
            }

            VideoContainer allSaw = new VideoContainer();

            // Ciklu eina per visus filmus ir kitam cikle tikrina, ar visi kinomanai jį matė
            for (int i = 0; i < n; i++)
            {
                bool all = true;
                for (int j = 0; j < enthusiasts.Count; j++)
                {
                    int m;
                    var enthusiastMovies = enthusiasts.Get(j).GetUniqueVideos(out m);

                    // Jeigu tas pats kinomanas matė filmą, reiškia jo neįtrauksim į rekomenduojamų sarasą
                    if (enthusiastFor != null && enthusiastMovies.Contains(allMovies[i]) && enthusiasts.Get(j) == enthusiastFor)
                    {
                        all = false;
                    }

                    // Jeigu tas pats kinomanas, netikrinam ar jis matęs filmą
                    if (enthusiastFor != null && enthusiasts.Get(j) == enthusiastFor)
                    {
                        continue;
                    }

                    if (!enthusiastMovies.Contains(allMovies[i]))
                    {
                        all = false;
                    }
                }
                if (all)
                {
                    allSaw.AddVideo(allMovies[i]);
                }
            }
            return(allSaw);
        }
예제 #3
0
        /// <summary>
        /// Skaito įrašų duomenis iš failo
        /// </summary>
        /// <param name="file">Įvesties duomenų failo pavadinimas</param>
        /// <returns>Įrašo entuziastus </returns>
        private static VideoEnthusiast ReadVideoEnthusiastData(string file)
        {
            VideoEnthusiast videoEnthusiast;

            using (StreamReader reader = new StreamReader(file))
            {
                string   line   = reader.ReadLine();
                string[] values = line.Split(',');
                string   VideoEnthusiastName    = values[0];
                string   VideoEnthusiastSurname = values[1];
                string   YearOfBirth            = reader.ReadLine();
                string   City = reader.ReadLine();
                videoEnthusiast = new VideoEnthusiast(VideoEnthusiastName, VideoEnthusiastSurname, YearOfBirth, City);

                while (null != (line = reader.ReadLine()))
                {
                    values = line.Split(',');
                    char   type   = line[0];
                    string Name   = values[1];
                    string Genre  = values[2];
                    string Studio = values[3];
                    string Actor1 = values[4];
                    string Actor2 = values[5];
                    switch (type)
                    {
                    case 'M':
                        int    Release  = int.Parse(values[6]);
                        string Director = values[7];
                        double Profit   = double.Parse(values[8]);
                        Movie  movie    = new Movie(Name, Genre, Studio, Actor1, Actor2, Release, Director, Profit);

                        if (!videoEnthusiast.Videos.Contains(movie))
                        {
                            videoEnthusiast.AddVideo(movie);
                        }
                        break;

                    case 'S':
                        string StartDate = values[6];
                        string EndDate   = values[7];
                        int    Episodes  = int.Parse(values[8]);
                        string Airing    = values[9];
                        Series series    = new Series(Name, Genre, Studio, Actor1, Actor2, StartDate, EndDate, Episodes, Airing);
                        if (!videoEnthusiast.Videos.Contains(series))
                        {
                            videoEnthusiast.AddVideo(series);
                        }
                        break;
                    }
                }
            }
            return(videoEnthusiast);
        }
예제 #4
0
 public bool Contains(VideoEnthusiast videoEnthusiast)
 {
     return(VideoEnthusiasts.Contains(videoEnthusiast));
 }
예제 #5
0
 public void AddVideoEnthusiast(VideoEnthusiast videoEnthusiast, int index)
 {
     VideoEnthusiasts[index] = videoEnthusiast;
 }
예제 #6
0
 public void AddVideoEnthusiast(VideoEnthusiast videoEnthusiast)
 {
     VideoEnthusiasts[Count++] = videoEnthusiast;
 }