static void Main(string[] args)
        {            
            var c = new EnrolmentConfig() {
                ValidationRule3_PercentageCapacity = 50,
                ValidationRule3_AcceptedRanking = 70,
                ValidationRule4_PercentageCapacity = 50,
                ValidationRule5_PercentageCapacity = 50
            };

            var subjects = new Subject[]
            {
                new Subject() { Name = "Java Programming", SubjectType = SubjectTypeEnum.Programming, MaxSubjectSize = 20 },
                new Subject() { Name = "C# Programming", SubjectType = SubjectTypeEnum.Programming, MaxSubjectSize = 20 },
                new Subject() { Name = "PHP Programming", SubjectType = SubjectTypeEnum.Programming, MaxSubjectSize = 20 },
                new Subject() { Name = "Graphic Design", SubjectType = SubjectTypeEnum.Programming, MaxSubjectSize = 20 },
                new Subject() { Name = "Web Design", SubjectType = SubjectTypeEnum.Design, MaxSubjectSize = 20 },
                new Subject() { Name = "3D Design", SubjectType = SubjectTypeEnum.Design, MaxSubjectSize = 20 },
                new Subject() { Name = "English Literature", SubjectType = SubjectTypeEnum.Literature, MaxSubjectSize = 10 }
            };
            
            System.Console.WriteLine("Enrolment log results");

            var enrolments = RandomEnrolmentGenerator.generate(55, subjects, 4);

            // Result is a tuple of log items and enrolments
            var result = StudentEnroller.enrol(enrolments, new Enrolment[] { }, c);
            
            File.WriteAllLines("log.txt", result.Item1.Select(item => item.ToString()));

            result.Item1.ToList().ForEach(item => System.Console.WriteLine("Code - {0}, Message - {1}", item.Item1, item.Item2));

            System.Console.ReadLine();
        }
        static void Main(string[] args)
        {
            var c = new EnrolmentConfig()
            {
                ValidationRule3_PercentageCapacity = 50,
                ValidationRule3_AcceptedRanking    = 70,
                ValidationRule4_PercentageCapacity = 50,
                ValidationRule5_PercentageCapacity = 50
            };

            var subjects = new Subject[]
            {
                new Subject()
                {
                    Name = "Java Programming", SubjectType = SubjectTypeEnum.Programming, MaxSubjectSize = 20
                },
                new Subject()
                {
                    Name = "C# Programming", SubjectType = SubjectTypeEnum.Programming, MaxSubjectSize = 20
                },
                new Subject()
                {
                    Name = "PHP Programming", SubjectType = SubjectTypeEnum.Programming, MaxSubjectSize = 20
                },
                new Subject()
                {
                    Name = "Graphic Design", SubjectType = SubjectTypeEnum.Programming, MaxSubjectSize = 20
                },
                new Subject()
                {
                    Name = "Web Design", SubjectType = SubjectTypeEnum.Design, MaxSubjectSize = 20
                },
                new Subject()
                {
                    Name = "3D Design", SubjectType = SubjectTypeEnum.Design, MaxSubjectSize = 20
                },
                new Subject()
                {
                    Name = "English Literature", SubjectType = SubjectTypeEnum.Literature, MaxSubjectSize = 10
                }
            };

            System.Console.WriteLine("Enrolment log results");

            var enrolments = RandomEnrolmentGenerator.generate(55, subjects, 4);

            // Result is a tuple of log items and enrolments
            var result = StudentEnroller.enrol(enrolments, new Enrolment[] { }, c);

            File.WriteAllLines("log.txt", result.Item1.Select(item => item.ToString()));

            result.Item1.ToList().ForEach(item => System.Console.WriteLine("Code - {0}, Message - {1}", item.Item1, item.Item2));

            System.Console.ReadLine();
        }