Пример #1
0
        /// <summary>
        ///  Get groups with them average, minimum and maximum results with sorting
        /// </summary>
        /// <param name="func">Property for sorting</param>
        /// <param name="stype">Sorting type</param>
        /// <returns></returns>
        public IEnumerable <GroupsAvgMinMax> GetGroupsAvgMinMax(Func <GroupsAvgMinMax, object> func, SortType stype)
        {
            List <GroupsAvgMinMax> results = new List <GroupsAvgMinMax>();

            foreach (Group item in Groups)
            {
                List <WorkResult> groupResults = new List <WorkResult>();
                List <Student>    students     = Students.Where(s => s.GroupId == item.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)
                {
                    results.Add(new GroupsAvgMinMax(item.GroupName, groupResults.Min(r => Convert.ToInt32(r.Result)), groupResults.Average(r => Convert.ToInt32(r.Result)), groupResults.Max(r => Convert.ToInt32(r.Result))));
                }
            }
            if (stype == SortType.Ascending)
            {
                results.OrderBy(func);
            }
            else
            {
                results.OrderByDescending(func);
            }
            return(results);
        }
Пример #2
0
        /// <summary>
        /// Get dropout students method
        /// </summary>
        /// <returns></returns>
        public IEnumerable <DropOutStudentsByGroup> GetExpelStudents()
        {
            List <DropOutStudentsByGroup> result = new List <DropOutStudentsByGroup>();

            foreach (Group group in Groups)
            {
                DropOutStudentsByGroup expel    = new DropOutStudentsByGroup(group.GroupName);
                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)
                        {
                            if (int.Parse(res.Result) <= 3)
                            {
                                expel.DropoutStudent.Add(new DropoutStudent(stud.Name, stud.Surname, stud.MidleName));
                                break;
                            }
                        }
                        else
                        {
                            if (res.Result == "Uncredit")
                            {
                                expel.DropoutStudent.Add(new DropoutStudent(stud.Name, stud.Surname, stud.MidleName));
                                break;
                            }
                        }
                    }
                }
                result.Add(expel);
            }
            return(result);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <summary>
        /// Get groups with them average, minimum and maximum results method
        /// </summary>
        /// <returns></returns>
        public IEnumerable <GroupsAvgMinMax> GetGroupsAvgMinMax()
        {
            List <GroupsAvgMinMax> results = new List <GroupsAvgMinMax>();

            foreach (Group item in Groups)
            {
                List <WorkResult> groupResults = new List <WorkResult>();
                List <Student>    students     = Students.Where(s => s.GroupId == item.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)
                {
                    results.Add(new GroupsAvgMinMax(item.GroupName, groupResults.Min(r => Convert.ToInt32(r.Result)), groupResults.Average(r => Convert.ToInt32(r.Result)), groupResults.Max(r => Convert.ToInt32(r.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);
        }
        /// <summary>
        /// Get list of average marks method
        /// </summary>
        public ICollection <AverageMarksBySubjectsInOneYear> GetAverageMarks()
        {
            List <AverageMarksBySubjectsInOneYear> result = new List <AverageMarksBySubjectsInOneYear>();

            foreach (Session ses in Sessions)
            {
                AverageMarksBySubjectsInOneYear oneYear = new AverageMarksBySubjectsInOneYear();
                oneYear.Year = ses.AcademicYears;
                foreach (Subject item in Subjects)
                {
                    List <WorkResult> wresults = WorkResults.Where(w => w.SubjectId == item.Id).ToList();
                    double            sum      = 0;
                    int count = 0;
                    foreach (WorkResult res in wresults)
                    {
                        if (int.TryParse(res.Result, out int a))
                        {
                            sum += a;
                            count++;
                        }
                    }
                    if (count != 0)
                    {
                        double average = sum / count;
                        oneYear.AverageMarks.Add(new AverageMarkBySubject(item.SubjectName, Math.Round(average, 2)));
                    }
                }
                result.Add(oneYear);
            }
            return(result);
        }
Пример #7
0
        /// <summary>
        /// Get dropout students with sorting
        /// </summary>
        /// <param name="func">Propert for sorting</param>
        /// <param name="stype">Sorting type</param>
        /// <returns></returns>
        public IEnumerable <DropOutStudentsByGroup> GetExpelStudents(Func <DropoutStudent, object> func, SortType stype)
        {
            List <DropOutStudentsByGroup> result = new List <DropOutStudentsByGroup>();

            foreach (Group group in Groups)
            {
                DropOutStudentsByGroup expel    = new DropOutStudentsByGroup(group.GroupName);
                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)
                        {
                            if (int.Parse(res.Result) <= 3)
                            {
                                expel.DropoutStudent.Add(new DropoutStudent(stud.Name, stud.Surname, stud.MidleName));
                                break;
                            }
                        }
                        else
                        {
                            if (res.Result == "Uncredit")
                            {
                                expel.DropoutStudent.Add(new DropoutStudent(stud.Name, stud.Surname, stud.MidleName));
                                break;
                            }
                        }
                    }
                }
                result.Add(expel);
            }
            List <DropOutStudentsByGroup> dropout = new List <DropOutStudentsByGroup>();

            if (stype == SortType.Ascending)
            {
                foreach (DropOutStudentsByGroup item in result)
                {
                    dropout.Add(new DropOutStudentsByGroup(item.GroupName, item.DropoutStudent.OrderBy(func).ToArray()));
                }
            }
            else
            {
                foreach (DropOutStudentsByGroup item in result)
                {
                    dropout.Add(new DropOutStudentsByGroup(item.GroupName, item.DropoutStudent.OrderByDescending(func).ToArray()));
                }
            }
            return(dropout);
        }
Пример #8
0
        // GET: Resume/Details/5
        public ActionResult Details(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WorkResults workResults = new WorkResults();

            workResults.Resume = db.Resumes.Find(id);
            if (workResults.Resume == null)
            {
                return(HttpNotFound());
            }
            workResults.WorkExperiences = db.WorkExperiences.Where(x => x.ResumeId == id).ToList();
            return(View(workResults));
        }
        /// <summary>
        /// Get list of average marks method
        /// </summary>
        /// <param name="func">Property for sorting</param>
        /// <param name="type">Sorting type</param>
        /// <returns></returns>
        public ICollection <AverageMarksBySubjectsInOneYear> GetAverageMarks(Func <AverageMarkBySubject, object> func, SortType type)
        {
            List <AverageMarksBySubjectsInOneYear> result = new List <AverageMarksBySubjectsInOneYear>();

            foreach (Session ses in Sessions)
            {
                AverageMarksBySubjectsInOneYear oneYear = new AverageMarksBySubjectsInOneYear();
                oneYear.Year = ses.AcademicYears;
                foreach (Subject item in Subjects)
                {
                    List <WorkResult> wresults = WorkResults.Where(w => w.SubjectId == item.Id).ToList();
                    double            sum      = 0;
                    int count = 0;
                    foreach (WorkResult res in wresults)
                    {
                        if (int.TryParse(res.Result, out int a))
                        {
                            sum += a;
                            count++;
                        }
                    }
                    if (count != 0)
                    {
                        double average = sum / count;
                        oneYear.AverageMarks.Add(new AverageMarkBySubject(item.SubjectName, Math.Round(average, 2)));
                    }
                }
                result.Add(oneYear);
            }
            List <AverageMarksBySubjectsInOneYear> r = new List <AverageMarksBySubjectsInOneYear>();

            if (type == SortType.Ascending)
            {
                foreach (AverageMarksBySubjectsInOneYear item in result)
                {
                    r.Add(new AverageMarksBySubjectsInOneYear(item.Year, item.AverageMarks.OrderBy(func).ToArray()));
                }
            }
            else
            {
                foreach (AverageMarksBySubjectsInOneYear item in result)
                {
                    r.Add(new AverageMarksBySubjectsInOneYear(item.Year, item.AverageMarks.OrderByDescending(func).ToArray()));
                }
            }
            return(r);
        }
Пример #10
0
        // GET: Resume/Edit/5
        public ActionResult Edit(Guid?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            WorkResults workResults = new WorkResults();

            workResults.Resume = db.Resumes.Find(id);
            if (workResults.Resume == null)
            {
                return(HttpNotFound());
            }
            List <WorkExperience> workExperiences = db.WorkExperiences.Where(x => x.ResumeId == id).ToList();

            workResults.WorkExperiences = workExperiences;

            //var query =
            //  from c in db.SkillCategory
            //  join rs in db.ResumeSkills on j.JobSkillId equals rs.SkillCategoryId
            //  where rs.ResumeId == id
            //  orderby j.SkillType, j.SkillCategory, j.JobSkillName
            //  select new JobSkillInfo
            //  {
            //      JobSkillId = j.JobSkillId,
            //      SkillType = j.SkillType,
            //      SkillCategory = j.SkillCategory,
            //      JobSkillName = j.JobSkillName,
            //      Image = c.Image
            //  };
            //workResults.JobSkillInfos = query.ToList();

            workResults.SkillCategories = db.SkillCategory.ToList();
            workResults.AquiredSkills   = (
                from s in db.ResumeSkills
                where s.ResumeId == id
                select s.SkillCategoryId
                ).ToList();
            return(View(workResults));
        }
        /// <summary>
        /// Get sorted list of average marks method
        /// </summary>
        /// <param name="sesId">Session's id</param>
        /// <param name="func">Property for sorting</param>
        /// <param name="type">Sorting type</param>
        /// <returns></returns>
        public IEnumerable <AverageMarkBySpecification> GetAverageMark(int sesId, Func <AverageMarkBySpecification, object> func, SortType type)
        {
            Session currentSession = Sessions.FirstOrDefault(s => s.Id == sesId);
            List <AverageMarkBySpecification> results = new List <AverageMarkBySpecification>();

            AverageMarkBySpecification.SetSessionName($"Session({currentSession.AcademicYears})");
            foreach (Group item in Groups)
            {
                List <WorkResult> groupResults = new List <WorkResult>();
                List <Student>    students     = Students.Where(s => s.GroupId == item.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)
                {
                    AverageMarkBySpecification average = new AverageMarkBySpecification();
                    average.AverageMark  = Math.Round(groupResults.Average(i => Convert.ToInt32(i.Result)), 2);
                    average.Specifcation = Specifications.FirstOrDefault(s => s.Id == item.SpecificationId).SpecificationName;
                    results.Add(average);
                    groupResults.Clear();
                }
            }
            if (type == SortType.Ascending)
            {
                return(results.OrderBy(func));
            }
            else
            {
                return(results.OrderByDescending(func));
            }
        }
        /// <summary>
        /// Get list of average marks method
        /// </summary>
        public IEnumerable <AverageMarkBySpecification> GetAverageMark(int sesId)
        {
            Session currentSession = Sessions.FirstOrDefault(s => s.Id == sesId);
            List <AverageMarkBySpecification> results = new List <AverageMarkBySpecification>();

            AverageMarkBySpecification.SetSessionName($"Session({currentSession.AcademicYears})");
            foreach (Specification spec in Specifications)
            {
                List <Group> groups = Groups.Where(g => g.SpecificationId == spec.Id).ToList();
                foreach (Group item in groups)
                {
                    List <WorkResult> groupResults = new List <WorkResult>();
                    List <Student>    students     = Students.Where(s => s.GroupId == item.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)
                    {
                        AverageMarkBySpecification average = new AverageMarkBySpecification();
                        average.AverageMark  = Math.Round(groupResults.Average(i => Convert.ToInt32(i.Result)), 2);
                        average.Specifcation = Specifications.FirstOrDefault(s => s.Id == item.SpecificationId).SpecificationName;
                        results.Add(average);
                        groupResults.Clear();
                    }
                }
            }

            return(results);
        }