public void CreateMailForAdminTeachersEngagementsReport(TeachersWeeklyEngagementsDTO report, string adminId) { Admin admin = db.AdminsRepository.GetByID(adminId); if (admin != null) { string subject = $"E-School: Teachers Weekly Engagements Report On The Date Of {report.OnDate}"; string body = string.Empty; body += $"<p>Dear {admin.FirstName} {admin.LastName},<br/>" + $"We are sending you Teachers Weekly Engagements Report on the date of {report.OnDate}.</p>" + $"<br/>" + $"<br/>"; body += "<table border='1'><td><b><center> Teacher ID </center></b></td><td><b><center> Teacher </center></b></td><td><b><center> Number Of Classes Per Week </center></b></td>"; foreach (var line in report.WeeklyEngagementsByTeachers) { body += "<tr><td>" + line.TeacherID + "</td><td>" + line.Teacher + "</td><td><center>" + line.WeeklyEngagements + "</center></td></tr>"; } body += "</table>"; body += $"<br/>" + $"<br/>" + $"Sincerely,<br/>" + $"Svetlana Topalov, E-School"; string emailTo = admin.Email; bool isBodyHtml = true; CreateMail(subject, body, emailTo, isBodyHtml); } }
public TeachersWeeklyEngagementsDTO GetWorkingTeachersWeeklyEngagements(string adminId) { Admin admin = db.AdminsRepository.GetByID(adminId); //sanse za ovo su nepostojece if (admin.Email == null) { throw new HttpException("Please register you email, so that we can send you the report."); } IEnumerable <FormToTeacherSubject> activeFTS = db.FormsToTeacherSubjectsRepository.GetAllActive(); if (activeFTS == null) { return(null); } IEnumerable <Teacher> workingTeachers = db.TeachersRepository.GetAllStillWorkingTeachers(); if (workingTeachers == null) { return(null); } IList <TeacherIDWeeklyEngagementsDTO> weeklyEngagementsByTeachers = new List <TeacherIDWeeklyEngagementsDTO>(); foreach (var teacher in workingTeachers) { TeacherIDWeeklyEngagementsDTO reportByTeacherId = new TeacherIDWeeklyEngagementsDTO(); reportByTeacherId.TeacherID = teacher.Id; reportByTeacherId.Teacher = teacher.FirstName + " " + teacher.LastName; int sumEngagements = 0; foreach (var fts in activeFTS) { if (fts.TeacherToSubject.Teacher.Id == teacher.Id) { sumEngagements += fts.TeacherToSubject.Subject.NumberOfClassesPerWeek; } } reportByTeacherId.WeeklyEngagements = sumEngagements; weeklyEngagementsByTeachers.Add(reportByTeacherId); } TeachersWeeklyEngagementsDTO report = new TeachersWeeklyEngagementsDTO { OnDate = DateTime.UtcNow, WeeklyEngagementsByTeachers = weeklyEngagementsByTeachers }; emailsService.CreateMailForAdminTeachersEngagementsReport(report, admin.Id); return(report); }
public HttpResponseMessage GetWorkingTeachersWeeklyEngagements() { string userId = ((ClaimsPrincipal)RequestContext.Principal).FindFirst(x => x.Type == "UserId").Value; logger.Info("UserId: " + userId + ": Requesting Working Teachers Weekly Engagements Report."); try { TeachersWeeklyEngagementsDTO engagementsReport = formsToTeacherSubjectsService.GetWorkingTeachersWeeklyEngagements(userId); if (engagementsReport == null) { logger.Info("Failed!"); return(Request.CreateResponse(HttpStatusCode.BadRequest, "Failed!")); } logger.Info("Success!"); return(Request.CreateResponse(HttpStatusCode.OK, engagementsReport)); } catch (Exception e) { logger.Error(e); return(Request.CreateErrorResponse(HttpStatusCode.BadRequest, e)); } }