Example #1
0
        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");
            }
        }
Example #2
0
        public ExamResultPoint GetExamMark(int id)
        {
            ExamResultPoint examResultPoint = _context.ExamResultPoint.Where(p => p.Id == id).FirstOrDefault();

            if (examResultPoint != null)
            {
                return(examResultPoint);
            }
            return(null);
        }
Example #3
0
        public ExamResultPoint DeleteExamMark(int id)
        {
            ExamResultPoint edu = _context.ExamResultPoint.Find(id);

            if (edu != null)
            {
                _context.ExamResultPoint.Remove(edu);
                _context.SaveChanges();
                return(edu);
            }
            return(null);
        }
Example #4
0
        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.");
        }