public IHttpActionResult GetGrades(int stsId)
        {
            try
            {
                StudentTeacherSubject sts = stsService.GetSTSByID(stsId);

                string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

                if (User.IsInRole("parents"))
                {
                    if (userId == sts.Student.Parent.Id)
                    {
                        return(Ok(stsService.GetGrades(stsId)));
                    }
                    else
                    {
                        logger.Warn("Unauthorized user");
                        return(BadRequest("You are not authorised to see this contetnt"));
                    }
                }

                if (User.IsInRole("students"))
                {
                    if (userId == sts.StudentId)
                    {
                        return(Ok(stsService.GetGrades(stsId)));
                    }
                    else
                    {
                        logger.Warn("Unauthorized user");
                        return(BadRequest("You are not authorised to see this contetnt"));
                    }
                }

                if (User.IsInRole("teachers"))
                {
                    if (userId == sts.TeacherSubject.TeacherId)
                    {
                        return(Ok(stsService.GetGrades(stsId)));
                    }
                    else
                    {
                        logger.Warn("Unauthorized user");
                        return(BadRequest("You are not authorised to see this contetnt"));
                    }
                }

                return(Ok(stsService.GetGrades(stsId)));
            }
            catch (NullReferenceException)
            {
                logger.Warn("STS with this id does not exist");
                return(NotFound());
            }
            catch (Exception e)
            {
                logger.Error(e, "Exception thrown");
                return(BadRequest(e.Message));
            }
        }
예제 #2
0
        public STSDTO PostSTS(string studentUsername, int teacherSubjectId)
        {
            Student        student = db.StudentRepository.Get().FirstOrDefault(x => x.UserName == studentUsername);
            TeacherSubject ts      = db.TeacherSubjectRepository.GetByID(teacherSubjectId);

            StudentTeacherSubject newSTS = new StudentTeacherSubject()
            {
                StudentId        = student.Id,
                Student          = student,
                TeacherSubjectId = ts.Id,
                TeacherSubject   = ts,
            };

            STSDTO newDTo = new STSDTO()
            {
                Student = string.Format("{0} {1}", student.FirstName, student.LastName),
                Teacher = string.Format("{0} {1}", ts.Teacher.FirstName, ts.Teacher.LastName),
                Subject = ts.Subject.Name.ToString()
            };

            db.STSRepository.Insert(newSTS);
            db.Save();
            logger.Info("New Student-Teacher-Subejct with id {0} is created", newSTS.Id);
            return(newDTo);
        }
예제 #3
0
        public bool DeleteSTS(int id)
        {
            StudentTeacherSubject sts = db.STSRepository.GetByID(id);

            db.STSRepository.Delete(sts);
            db.Save();
            logger.Warn("STS with id {0} is deleted", sts.Id);
            return(true);
        }
예제 #4
0
        public StudentTeacherSubject PutSemesterToSTS(int id, StudentTeacherSubject sts)
        {
            StudentTeacherSubject stsUpdate = db.STSRepository.GetByID(id);

            stsUpdate.Semester = sts.Semester;

            db.STSRepository.Update(stsUpdate);
            db.Save();
            logger.Warn("STS with id {0} is updated", stsUpdate.Id);
            return(stsUpdate);
        }
        public IHttpActionResult GetSTSByID(int id)
        {
            StudentTeacherSubject sts = stsService.GetSTSByID(id);

            if (sts == null)
            {
                logger.Warn("This search does not exist");
                return(NotFound());
            }
            return(Ok(sts));
        }
        public IHttpActionResult PutSemesterToSTS(int id, StudentTeacherSubject sts)
        {
            StudentTeacherSubject stsUpdate = stsService.GetSTSByID(id);

            if (stsUpdate == null)
            {
                logger.Warn("This search does not exist");
                return(NotFound());
            }

            return(Ok(stsService.PutSemesterToSTS(id, sts)));
        }
예제 #7
0
        public ICollection <int> GetGrades(int stsId)
        {
            StudentTeacherSubject sts = db.STSRepository.GetByID(stsId);


            List <int> grades = new List <int>();

            foreach (var grade in sts.Grades)
            {
                grades.Add(grade.Value);
            }

            return(grades);
        }
예제 #8
0
        public void SendMail(StudentTeacherSubject sts, int value)
        {
            string subject  = "Student grade";
            string body     = string.Format(@"Postovani gospodine/gospodjo {0}, obavestavamo Vas da je Vase dete dobilo ocenu {1} iz predmete {2} koji predaje nastavnik {3} {4}", sts.Student.Parent.LastName, value, sts.TeacherSubject.Subject.Name, sts.TeacherSubject.Teacher.FirstName, sts.TeacherSubject.Teacher.LastName);
            string FromMail = ConfigurationManager.AppSettings["from"];
            //string emailTo = "";
            MailMessage mail       = new MailMessage();
            SmtpClient  SmtpServer = new SmtpClient(ConfigurationManager.AppSettings["smtpServer"]);

            mail.From = new MailAddress(FromMail);
            mail.To.Add(string.Format("{0}", sts.Student.Parent.Email));
            mail.Subject           = subject;
            mail.Body              = body;
            SmtpServer.Port        = int.Parse(ConfigurationManager.AppSettings["smtpPort"]);
            SmtpServer.Credentials = new System.Net.NetworkCredential(ConfigurationManager.AppSettings["from"], ConfigurationManager.AppSettings["password"]);
            SmtpServer.EnableSsl   = bool.Parse(ConfigurationManager.AppSettings["smtpSsl"]);
            SmtpServer.Send(mail);
            logger.Info("Email is sent to address: {0}", sts.Student.Parent.Email);
        }
예제 #9
0
        public STSDTO PutGrades(int id, int gradeId)
        {
            StudentTeacherSubject stsUpdate = db.STSRepository.GetByID(id);
            STSDTO sts = new STSDTO();

            sts.Student = string.Format("{0} {1}", stsUpdate.Student.FirstName, stsUpdate.Student.LastName);
            sts.Teacher = string.Format("{0} {1}", stsUpdate.TeacherSubject.Teacher.FirstName, stsUpdate.TeacherSubject.Teacher.LastName);
            sts.Subject = stsUpdate.TeacherSubject.Subject.Name.ToString();

            Grades grade = new Grades()
            {
                Value = gradeId
            };

            stsUpdate.Grades.Add(grade);
            sts.Grades.Add(grade.Value);

            db.STSRepository.Update(stsUpdate);
            db.Save();
            return(sts);
        }
        public IHttpActionResult PutGradesToSTS(int stsId, [FromBody] Grades grade)
        {
            try
            {
                StudentTeacherSubject stsUpdate = stsService.GetSTSByID(stsId);

                string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value;

                int gradeId = grade.Value;
                emailService.SendMail(stsUpdate, grade.Value);

                if (User.IsInRole("teachers"))
                {
                    if (userId == stsUpdate.TeacherSubject.TeacherId)
                    {
                        return(Ok(stsService.PutGrades(stsId, gradeId)));
                    }
                    else
                    {
                        logger.Warn("Unauthorized user");
                        return(BadRequest("You are not authorised to give a grade to this student"));
                    }
                }



                return(Ok(stsService.PutGrades(stsId, gradeId)));
            }
            catch (NullReferenceException)
            {
                logger.Warn("STS with this id does not exist");
                return(NotFound());
            }
            catch (Exception e)
            {
                logger.Error(e, "Exception thrown");
                return(BadRequest(e.Message));
            }
        }