public ActionResult <object> Save(StudentTermRegisterFORM save)
        {
            try
            {
                Init();
                var isSaved = _studentTermRegisterService.SingleSave(save, ref _sbError);

                if (isSaved == null)
                {
                    Response.StatusCode = 400;
                    return("Error " + _sbError.ToString());
                }
                return(true);
            }
            catch (Exception er)
            {
                return(Error(er));
            }
        }
Ejemplo n.º 2
0
        public StudentTermRegister SingleSave(StudentTermRegisterFORM enroll, ref StringBuilder sbError)
        {
            Student             student = null;
            StudentTermRegister studentDataEnrollment = null;
            bool dbFlag = false;

            if (!_user.isAdmin)
            {
                if (_user.ClassID != null)
                {
                    if (!_user.ClassID.Equals(enroll.ClassID))
                    {
                        sbError.Append("You are not class teacher of that class");
                        return(null);
                    }
                }
                else
                {
                    sbError.Append("You are not allowed to register student for this class");
                    return(null);
                }
            }



            var school = _uofRepository.SchoolRepository.GetSchoolBySchoolID(_user.SchoolID, ref dbFlag);


            student = _uofRepository.StudentRepository.GetStudentByRegNumber(enroll.RegNumber, _user.SchoolID, ref dbFlag);

            if (enroll.StudentTermRegisterID != null && enroll.StudentTermRegisterID != Guid.Empty)
            {
                var isExist = _uofRepository.StudentTermRegisterRepository.GetByID((Guid)enroll.StudentTermRegisterID, ref dbFlag);
                if (isExist == null)
                {
                    sbError.Append("Student not found by for term");
                    return(null);
                }
                else
                {
                    studentDataEnrollment = isExist;
                }
            }


            if (student == null)
            {
                sbError.Append("Student not found by reg number for school");
                return(null);
            }


            if (student == null)
            {
                sbError.Append("Student does not exist for school");
                return(null);
            }
            if (dbFlag)
            {
                sbError.Append("Error getting enrollment details");
                return(null);
            }
            if (student.SchoolID != _user.SchoolID)
            {
                sbError.Append("Student does not belong to school exist");
                return(null);
            }
            if (student.SchoolID != _user.SchoolID)
            {
                sbError.Append("Student does not belong to school exist");
                return(null);
            }



            if (enroll.StudentTermRegisterID != null && enroll.StudentTermRegisterID != Guid.Empty)
            {
                studentDataEnrollment.IsAllowedSent = enroll.IsAllowedSent;
                studentDataEnrollment.IsEmailSent   = enroll.IsEmailSent;
                studentDataEnrollment.IsPhoneSent   = enroll.IsPhoneSent;
                var e = _uofRepository.StudentTermRegisterRepository.Update(studentDataEnrollment, _user.Username, ref dbFlag);
                return(e);
            }

            var schoolClass = _uofRepository.ClassRepository.GetClassByID(enroll.ClassID, ref dbFlag);

            if (schoolClass == null)
            {
                sbError.Append("Class does not exist for school");
                return(null);
            }

            if (dbFlag)
            {
                sbError.Append("Error getting enrollment details");
                return(null);
            }

            if (schoolClass.SchoolID != _user.SchoolID)
            {
                sbError.Append("Class does not exist for school or vice versa");
                return(null);
            }

            StudentTermRegister enrollment = new StudentTermRegister()
            {
                StudentTermRegisterID = null,
                ClassID       = enroll.ClassID,
                StudentID     = (Guid)student.StudentID,
                TermID        = _user.TermID,
                IsAllowedSent = enroll.IsAllowedSent,
                IsEmailSent   = enroll.IsEmailSent,
                IsPhoneSent   = enroll.IsPhoneSent
            };


            enrollment = _uofRepository.StudentTermRegisterRepository.Insert(enrollment, _user.Username, ref dbFlag);
            if (dbFlag)
            {
                sbError.Append("Error getting saving enrollement");
                return(null);
            }

            // check if chan
            return(enrollment);
        }