public ActionResult AddFaculty(int[] examMark, int[] schoolMark)
        {
            var currentEnrollee = _enrolleeService.Find(customer => customer.AppCustomer.UserName == User.Identity.Name).First();

            var exSubjects = _examinationSubjectService.Find(ex => ex.Enrollees.Any(e => e.Email == currentEnrollee.Email)).ToList();

            if (examMark != null)
            {
                for (var i = 0; i < examMark.Length; i++)
                {
                    var mark = new Mark {
                        StudentMark = examMark[i], Enrollee = currentEnrollee, ExaminationSubject = exSubjects[i]
                    };

                    _markService.Create(mark);

                    if (exSubjects[i].Marks.Any(m => m.ExaminationSubject.Name == exSubjects[i].Name &&
                                                m.Enrollee.Email == currentEnrollee.Email))
                    {
                        exSubjects[i].Marks.First(m => m.ExaminationSubject.Name == exSubjects[i].Name &&
                                                  m.Enrollee.Email == currentEnrollee.Email).StudentMark = examMark[i];
                    }
                    else
                    {
                        exSubjects[i].Marks.Add(_markService.Find(m => m.Enrollee.Email == currentEnrollee.Email &&
                                                                  m.ExaminationSubject.Name == exSubjects[i].Name).Last());
                    }
                }
            }

            exSubjects.ForEach(s => _examinationSubjectService.Update(s));

            var schoolSubjects = _schoolSubjectsService.Find(ex => ex.Enrollees.Any(e => e.Email == currentEnrollee.Email)).ToList();

            if (schoolMark != null)
            {
                for (var i = 0; i < schoolMark.Length; i++)
                {
                    var mark = new Mark {
                        StudentMark   = schoolMark[i], Enrollee = currentEnrollee,
                        SchoolSubject = schoolSubjects[i]
                    };

                    _markService.Create(mark);

                    if (schoolSubjects[i].Marks.Any(m => m.SchoolSubject.Name == schoolSubjects[i].Name &&
                                                    m.Enrollee.Email == currentEnrollee.Email))
                    {
                        schoolSubjects[i].Marks.First(m => m.SchoolSubject.Name == schoolSubjects[i].Name &&
                                                      m.Enrollee.Email == currentEnrollee.Email).StudentMark = schoolMark[i];
                    }
                    else
                    {
                        schoolSubjects[i].Marks.Add(_markService.Find(m => m.Enrollee.Email == currentEnrollee.Email &&
                                                                      m.SchoolSubject.Name == schoolSubjects[i].Name).Last());
                    }
                }
            }

            schoolSubjects.ForEach(s => _schoolSubjectsService.Update(s));

            _enrolleeService.Update(currentEnrollee);

            return(RedirectToAction("GetFaculty", new { area = string.Empty, controller = "Faculty" }));
        }