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