Example #1
0
 public VideoEnthusiast(string videoEnthusiastName, string videoEnthusiastSurname, string yearOfBirth, string city)
 {
     VideoEnthusiastName    = videoEnthusiastName;
     VideoEnthusiastSurname = videoEnthusiastSurname;
     YearOfBirth            = yearOfBirth;
     City   = city;
     Videos = new VideoContainer();
 }
 /// <summary>
 /// Surašo visus duomenis į failą
 /// </summary>
 /// <param name="filename">Įvesties failo pavadinimas</param>
 /// <param name="container">Įrašų konteineris</param>
 static void WriteToFileAll(string filename, VideoContainer container)
 {
     using (var writer = new StreamWriter(filename))
     {
         for (int i = 0; i < container.Count; i++)
         {
             writer.WriteLine(container.Get(i));
         }
     }
 }
        /// <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);
        }