public string SaveExamMark(ExamResultPoint resultPoint) { var pointExist = _context.ExamResultPoint.Where(p => p.BranchId == resultPoint.BranchId && p.Point == resultPoint.Point || p.Grade == resultPoint.Grade || p.MaximumMark == resultPoint.MaximumMark || p.MinimumMark == resultPoint.MinimumMark).FirstOrDefault(); var isValid = resultPoint.MaximumMark > resultPoint.MinimumMark; if (!isValid) { return("Maximun number and Minimum number is not valid."); } if (resultPoint.Id == 0 && pointExist == null) { _context.ExamResultPoint.Add(resultPoint); _context.SaveChanges(); return("Successfully Inserted new Row"); } else { pointExist.MaximumMark = resultPoint.MaximumMark; pointExist.MinimumMark = resultPoint.MinimumMark; pointExist.Point = resultPoint.Point; pointExist.Grade = resultPoint.Grade; pointExist.Note = resultPoint.Note; _context.ExamResultPoint.Update(pointExist); _context.SaveChanges(); return("Successfully Updated new Row"); } }
public ExamResultPoint GetExamMark(int id) { ExamResultPoint examResultPoint = _context.ExamResultPoint.Where(p => p.Id == id).FirstOrDefault(); if (examResultPoint != null) { return(examResultPoint); } return(null); }
public ExamResultPoint DeleteExamMark(int id) { ExamResultPoint edu = _context.ExamResultPoint.Find(id); if (edu != null) { _context.ExamResultPoint.Remove(edu); _context.SaveChanges(); return(edu); } return(null); }
public string AddExamMark(ExamMark examMark) { // check This mark is already exist var markExist = _context.ExamMark.Where(e => e.ExamId == examMark.ExamId && e.StudentId == examMark.StudentId && e.ExamRoutineId == examMark.ExamRoutineId).FirstOrDefault(); //check this student is Present in exam and this subject is in rotine. =>addorupdate var isStudentPresentInExam = false; var rotine = _context.ExamRoutine.Where(r => r.Id == examMark.ExamRoutineId && r.ExamId == examMark.ExamId).FirstOrDefault(); if (rotine != null) { var stAttend = _context.AttendanceOfStudent.Where(at => at.StudentId == examMark.StudentId && at.Date.Date == rotine.ExamDate.Date).FirstOrDefault(); if (stAttend != null) { isStudentPresentInExam = true; } else { return("Student not Attend this Exam."); } } //check this subject is in student class. var isStudentSubject = false; int branchId = 0; if (isStudentPresentInExam) { var student = _context.Student.Where(s => s.Id == examMark.StudentId).FirstOrDefault(); if (student != null) { var stSecton = _context.Section.Where(a => a.Id == student.SectionId).FirstOrDefault(); var stClass = _context.BranchClass.Where(b => b.Id == stSecton.BranchClassId).FirstOrDefault(); branchId = stClass.BranchId; var studentSubject = _context.StudentSubject.Where(ss => ss.StudentId == student.Id && ss.SubjectId == rotine.SubjectId).FirstOrDefault(); if (stClass != null && studentSubject != null) { var subject = _context.Subject.Where(sb => sb.Id == rotine.SubjectId && sb.SchoolClassId == stClass.SchoolClassId).FirstOrDefault(); if (subject != null) { isStudentSubject = true; } } } } if (isStudentSubject && isStudentPresentInExam) { Exam exam = _context.Exam.Where(e => e.Id == examMark.ExamId).FirstOrDefault(); ExamResultPoint examResultPoint = GradePoint(branchId, (float)rotine.TotalNumber, examMark.ObtainMark); examMark.ResultStatus = IsPassed((float)rotine.TotalNumber, exam.PassingRate, examMark.ObtainMark); examMark.Point = examResultPoint.Point; if (examMark.ResultStatus) { examMark.Grade = examResultPoint.Grade; } else { examMark.Grade = "F"; } if (markExist == null) { _context.ExamMark.Add(examMark); _context.SaveChanges(); return(setPositionAndHighest(examMark, "Inserted")); //return examMark; } else { markExist.ObtainMark = examMark.ObtainMark; markExist.ResultStatus = examMark.ResultStatus; markExist.Point = examMark.Point; markExist.Grade = examMark.Grade; _context.ExamMark.Update(markExist); _context.SaveChanges(); return(setPositionAndHighest(markExist, "Updated")); //return markExist; } } return(null); }
public string GenerateExamResult(ResultGenerate resultGenerate) { var exam = _context.Exam.Where(e => e.Id == resultGenerate.ExamId).FirstOrDefault(); List <ExamMark> examMarksList = new List <ExamMark>(); Section section = _context.Section.Where(s => s.Id == resultGenerate.SectionId).FirstOrDefault(); if (section != null) { List <Student> studentListInSession = _context.Student.Where(st => st.SectionId == section.Id).ToList(); if (studentListInSession.Count() > 0) { string isUpdateOrInsert = ""; foreach (Student studentInSection in studentListInSession) { List <ExamMark> examMarkListForStudent = _context.ExamMark.Where(em => em.ExamId == resultGenerate.ExamId && em.StudentId == studentInSection.Id).ToList(); ExamResult examResult = new ExamResult(); int totalMark = 0; float obtainMark = 0; bool isPassed = true; double greadPoint = 0.00; foreach (ExamMark mark in examMarkListForStudent) { var rotine = _context.ExamRoutine.Where(r => r.Id == mark.ExamRoutineId).FirstOrDefault(); totalMark += rotine.TotalNumber; obtainMark += mark.ObtainMark; if (isPassed) { isPassed = mark.ResultStatus; } greadPoint += mark.Point; } examResult.ResultPublishDate = DateTime.Now; examResult.TotalMark = totalMark; examResult.TotalObtainMark = obtainMark; examResult.ResultStatus = isPassed; examResult.Point = Math.Round(greadPoint / examMarkListForStudent.Count(), 2); ExamResultPoint resultPoint = getGradePoint(exam.BranchId, examResult.Point); if (resultPoint != null) { if (examResult.ResultStatus) { examResult.Grade = resultPoint.Grade; } else { examResult.Grade = "F"; } examResult.Note = resultPoint.Note; } else { examResult.Grade = "##"; examResult.Note = "Point Setting Invalid"; } examResult.TotalPresent = examMarkListForStudent.Count(); examResult.ExamId = resultGenerate.ExamId; examResult.SectionId = resultGenerate.SectionId; examResult.StudentId = examMarkListForStudent[0].StudentId; ExamResult existExamResult = _context.ExamResult.Where(ee => ee.ExamId == resultGenerate.ExamId && ee.SectionId == resultGenerate.SectionId && ee.StudentId == examMarkListForStudent[0].StudentId).FirstOrDefault(); if (existExamResult == null) { _context.ExamResult.Add(examResult); _context.SaveChanges(); isUpdateOrInsert = "Inserted "; } else { existExamResult.TotalMark = examResult.TotalMark; existExamResult.TotalObtainMark = examResult.TotalObtainMark; existExamResult.ResultStatus = examResult.ResultStatus; existExamResult.Point = examResult.Point; existExamResult.Grade = examResult.Grade; existExamResult.Note = examResult.Note; existExamResult.TotalPresent = examResult.TotalPresent; _context.ExamResult.Update(existExamResult); _context.SaveChanges(); isUpdateOrInsert = "Updated "; } } var resultList = _context.ExamResult.Where(er => er.ExamId == resultGenerate.ExamId && er.SectionId == resultGenerate.SectionId).ToList(); if (resultList.Count() > 0) { resultList.Sort((a, b) => a.TotalObtainMark.CompareTo(b.TotalObtainMark)); resultList.Reverse(); var highestscore = resultList[0].TotalObtainMark; var position = 0; foreach (ExamResult er in resultList) { er.HighestMark = highestscore; er.Position = position + 1; position = (int)er.Position; } _context.ExamResult.UpdateRange(resultList); _context.SaveChanges(); return("Successfully " + isUpdateOrInsert + resultList.Count() + " Result for Section :" + section.SectionName); } return(" Total " + studentListInSession.Count() + " student result " + isUpdateOrInsert + " but failed to Set height and position for students."); } } return("This Session not exist in branch."); }