Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
            }
        }