/// <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); }
/// <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); }
/// <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 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); }
/// <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); }
// 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); }
// 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); }