/// <summary>
        /// Get session results method
        /// </summary>
        /// <param name="sessionId">Session id</param>
        /// <returns></returns>
        public ICollection <GroupResult> GetSessionResult(int sessionId)
        {
            List <GroupResult> results = new List <GroupResult>();

            foreach (Group group in Groups)
            {
                GroupResult    result   = new GroupResult(group.GroupName);
                List <Student> students = Students.Where(s => s.GroupId == group.Id).ToList();
                foreach (Student student in students)
                {
                    List <WorkResult> workResults = WorkResults.Where(w => w.StudentId == student.Id).ToList();
                    foreach (WorkResult item in workResults)
                    {
                        SessionShedule shedule = SessionShedules.FirstOrDefault(s => s.Id == item.SessionSheduleId && s.SessionId == sessionId);
                        Subject        subject = Subjects.FirstOrDefault(s => s.Id == item.SubjectId);
                        WorkType       type    = WorkTypes.FirstOrDefault(w => w.Id == item.WorkTypeId);
                        if (shedule != null && shedule != null && type != null)
                        {
                            result.StudentResults.Add(new StudentResult(shedule.Date, subject.SubjectName, student.Name, student.Surname, student.MidleName, type.WorkTypeName, item.Result));
                        }
                    }
                }

                results.Add(result);
            }
            return(results);
        }
        /// <summary>
        /// Get list of average marks method
        /// </summary>
        /// <returns></returns>
        public IEnumerable <AverageMarkByExaminer> GetAverageMark(int sesId)
        {
            Session currentSession = Sessions.FirstOrDefault(s => s.Id == sesId);
            List <SessionShedule>        shedules = SessionShedules.Where(s => s.SessionId == currentSession.Id).ToList();
            List <AverageMarkByExaminer> results  = new List <AverageMarkByExaminer>();

            AverageMarkByExaminer.SetSessionName($"Session({currentSession.AcademicYears})");
            foreach (SessionShedule item in shedules)
            {
                Group             group        = Groups.FirstOrDefault(g => g.Id == item.GroupId);
                List <WorkResult> groupResults = new List <WorkResult>();
                List <Student>    students     = Students.Where(s => s.GroupId == group.Id).ToList();
                foreach (Student stud in students)
                {
                    List <WorkResult> workResults = WorkResults.Where(w => w.StudentId == stud.Id).ToList();
                    foreach (WorkResult res in workResults)
                    {
                        if (res.WorkTypeId == 1)
                        {
                            groupResults.Add(res);
                        }
                    }
                }
                if (groupResults.Count != 0)
                {
                    AverageMarkByExaminer average = new AverageMarkByExaminer();
                    average.AverageMark  = Math.Round(groupResults.Average(i => Convert.ToInt32(i.Result)), 2);
                    average.ExaminerName = Examiners.FirstOrDefault(s => s.Id == item.ExaminerId).Name;
                    results.Add(average);
                    groupResults.Clear();
                }
            }
            return(results);
        }