Exemple #1
0
        static void Main(string[] args)
        {
            /*
             * University universityA = new University("CHDTU");
             * var student1 = new Student("Andrew Kostenko", new Knowledge(78));
             * var student2 = new Student("Julia Veselkina", new Knowledge(92));
             * var student3 = new Student("Maria Perechrest", new Knowledge(60));
             * universityA.AddStudent(student1);
             * universityA.AddStudent(student2);
             * universityA.AddStudent(student3);
             *
             * Internship internLink = new Internship("Interlink");
             * internLink.AddStudent(student1, universityA);
             *          internLink.AddStudent(student2, universityA);
             *          internLink.AddStudent(student3, universityA);
             *          Console.WriteLine("List of internship's students:");
             * Console.WriteLine(internLink.GetStudents());
             */
            var        student1    = new Student("Andrew Kostenko", new Knowledge(60, 60), 0.5f, true);
            var        student2    = new Student("Andrew NeKostenko", new Knowledge(60, 60), 0.5f, true);
            var        student3    = new Student("NeAndrew Kostenko", new Knowledge(60, 60), 0.5f, false);
            var        student4    = new Student("NeAndrew NeKostenko", new Knowledge(60, 60), 0.5f, true);
            University universityA = new University("CHDTU");

            universityA.AddStudent(student1);
            universityA.AddStudent(student2);
            universityA.AddStudent(student3);
            universityA.AddStudent(student4);
            University universityB = new University("CHNU");

            universityB.AddStudent(student4);
            Internship internLink = new Internship("Interlink");

            internLink.AddStudent(student1, universityA);
            internLink.AddStudent(student2, universityA);
            internLink.AddStudent(student3, universityB);
            internLink.AddStudent(student4, universityB);
            Meetup     meetup     = new Meetup("Митап");
            selfTaught selfTaught = new selfTaught();

            ISchedule workingDays        = new DoWSchedule(DayOfWeek.Monday, DayOfWeek.Tuesday, DayOfWeek.Wednesday, DayOfWeek.Tuesday, DayOfWeek.Friday);
            ISchedule weekends           = new DoWSchedule(DayOfWeek.Saturday, DayOfWeek.Sunday);
            ISchedule everyDays          = new JoinSchedule(workingDays, weekends);
            ISchedule excludeSummer      = new MonthSchedule(1, 2, 3, 4, 5, 9, 10, 11, 12);
            ISchedule academicSchedule   = new JoinSchedule(excludeSummer, workingDays);
            ISchedule daysInLastWInMonth = new LastWoMSchedule(DayOfWeek.Friday);


            Plan pacificPlan = new Plan("Пацифист");

            pacificPlan.addTask(universityA, new Period(new DateTime(2015, 9, 1), new DateTime(2020, 7, 20)), academicSchedule);
            pacificPlan.addTask(universityB, new Period(new DateTime(2020, 9, 1), new DateTime(2022, 7, 20)), academicSchedule);

            Plan selfTaughtPlan = new Plan("Самоучка");

            selfTaughtPlan.addTask(internLink, new Period(new DateTime(2018, 9, 1), new DateTime(2020, 7, 20)), workingDays);
            selfTaughtPlan.addTask(meetup, daysInLastWInMonth);
            selfTaughtPlan.addTask(selfTaught, everyDays);

            Plan teachMEPlan = new Plan("Терпила");

            teachMEPlan.addTask(universityA, new Period(new DateTime(2018, 9, 1), new DateTime(2020, 7, 20)), academicSchedule);
            teachMEPlan.addTask(meetup, new Period(new DateTime(2018, 9, 1), new DateTime(2020, 7, 20)), daysInLastWInMonth);
            teachMEPlan.addTask(new Period(new DateTime(2018, 9, 1), new DateTime(2020, 7, 20)), everyDays);

            Plan enlightenedPlan = new Plan("Сознательный");

            enlightenedPlan.addTask(universityA, new Period(new DateTime(2015, 9, 1), new DateTime(2020, 7, 20)), academicSchedule);
            enlightenedPlan.addTask(meetup, daysInLastWInMonth);
            enlightenedPlan.addTask(internLink, new Period(new DateTime(2018, 9, 1), new DateTime(2020, 7, 20)), workingDays);
            enlightenedPlan.addTask(selfTaught, everyDays);
            enlightenedPlan.addTask(student2, weekends);

            pacificPlan.teachStudent(student1, new Period(new DateTime(2015, 9, 1), new DateTime(2022, 7, 20)));
            selfTaughtPlan.teachStudent(student2, new Period(new DateTime(2015, 9, 1), new DateTime(2022, 7, 20)));
            teachMEPlan.teachStudent(student3, new Period(new DateTime(2015, 9, 1), new DateTime(2022, 7, 20)));
            enlightenedPlan.teachStudent(student4, new Period(new DateTime(2015, 9, 1), new DateTime(2022, 7, 20)));

            Console.WriteLine(student1.GetKnowledgePract() + " " + student1.GetKnowledgeTheory());
            Console.WriteLine(student2.GetKnowledgePract() + " " + student2.GetKnowledgeTheory());
            Console.WriteLine(student3.GetKnowledgePract() + " " + student3.GetKnowledgeTheory());
            Console.WriteLine(student4.GetKnowledgePract() + " " + student4.GetKnowledgeTheory());
        }