public void RandomAvailableCourse()
        {
            var trainers = (
                from tr in dbContext.Trainers
                select tr
                ).ToList();

            var courses = (
                from cr in dbContext.Courses
                select cr
                ).ToList();

            foreach (var trainer in trainers)
            {
                foreach (var course in courses)
                {
                    if (trainer.Subject.Trim().Equals(course.Title.Trim()))
                    {
                        AvailableCourse ac = new AvailableCourse();
                        ac.TrainerID = trainer.ID;
                        ac.CourseID  = course.ID;

                        ac.Course = (
                            from crs in dbContext.Courses
                            where crs.ID == course.ID
                            select crs
                            ).FirstOrDefault();
                        ac.Trainer = (
                            from tr in dbContext.Trainers
                            where tr.ID == trainer.ID
                            select tr
                            ).FirstOrDefault();

                        if (ac.Course.Type.Trim().Equals("Full Time"))
                        {
                            ac.StartDate = dates[0];
                            ac.EndDate   = dates[2];
                        }
                        else if (ac.Course.Type.Trim().Equals("Part Time"))
                        {
                            ac.StartDate = dates[rnd.Next(0, 1)];
                            if (ac.StartDate.Equals(dates[0]))
                            {
                                ac.EndDate = dates[1];
                            }
                            else
                            {
                                ac.EndDate = dates[2];
                            }
                        }

                        var availCourses = (
                            from avCr in dbContext.AvailableCourses
                            select avCr
                            ).ToList();
                        exists = false;

                        foreach (var avC in availCourses)
                        {
                            if (ac.CourseID == avC.CourseID)
                            {
                                if (avC.TrainerID == ac.TrainerID)
                                {
                                    exists = true;
                                    break;
                                }
                            }
                        }
                        if (!exists)
                        {
                            dbContext.AvailableCourses.Add(ac);
                            Console.WriteLine("Press key to Add Courses");
                            Console.ReadKey();
                            dbContext.SaveChanges();
                        }
                    }
                }
            }
        }
        //TODO 11: Match Trainer to Course
        public void CreateAvailableCourse()
        {
            Console.Clear();
            int      courseID;
            int      trainerID;
            DateTime startDate;
            DateTime endDate;

            tv.ViewCourses();

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("Select a Course by typing the ID: ");
            courseID = int.Parse(Console.ReadLine());
            Console.ResetColor();

            tv.ViewTrainers();

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("Select a Trainer by typing the ID: ");
            Console.ResetColor();
            trainerID = int.Parse(Console.ReadLine());


            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("Starting Date: ");
            Console.ResetColor();
            startDate = DateTime.Parse(Console.ReadLine());

            Console.ForegroundColor = ConsoleColor.Green;
            Console.Write("Ending Date: ");
            Console.ResetColor();
            endDate = DateTime.Parse(Console.ReadLine());

            AvailableCourse ac = new AvailableCourse()
            {
                CourseID  = courseID,
                TrainerID = trainerID,
                StartDate = startDate,
                EndDate   = endDate
            };

            Console.ForegroundColor = ConsoleColor.Green;
            Console.WriteLine("Commit changes? y/n");
            Console.ResetColor();
            string input = Console.ReadLine().ToLower();

            if (input.Equals("y"))
            {
                try
                {
                    dbContext.AvailableCourses.Add(ac);
                    dbContext.SaveChanges();
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("Changes saved to database.");
                    Console.ResetColor();
                }
                catch (System.Data.Entity.Infrastructure.DbUpdateException)
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Entity exists");
                    Console.ResetColor();
                }
            }
            else
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("Changes not committed. Please retry.");
                Console.ResetColor();
            }

            Console.ReadKey();
        }