public ActionResult Send(long id) { var usr = repository.GetUser(id); if (usr == null) { return(Json("User not found".ToJsonFail(), JsonRequestBehavior.AllowGet)); } var viewmodel = new NotificationSendViewModel(); viewmodel.studentid = id; viewmodel.message = string.Format("This is to inform you that {0} has been late/absent {1} days this week.", usr.ToName(), usr.attendances.ToNumberThisWeek(Utility.GetDBDate()).Sum()); // get parents viewmodel.parents = usr.students_guardians.Select( x => new IdName(x.user1.id, string.Format("{0} {1}", x.user1.ToName(), string.IsNullOrEmpty(x.user1.email) ? "<span class='font_red'>no email</span>" : ""))); return(View(viewmodel)); }
public ActionResult Send(long id) { var usr = repository.GetUser(id); if (usr == null) { return(SendJsonErrorResponse("User not found")); } var viewmodel = new NotificationSendViewModel(); viewmodel.studentid = id; viewmodel.message = string.Format("This is to inform you of {0}'s merit/demerit points.", usr.ToName()); // get parents viewmodel.parents = usr.students_guardians.Select( x => new IdName(x.user1.id, string.Format("{0} {1}", x.user1.ToName(), string.IsNullOrEmpty(x.user1.email) ? "<span class='font_red'>no email</span>" : ""))); return(View(viewmodel)); }
public ActionResult UploadAnswer(long id, string qqfile) { var length = long.Parse(Request.Params["CONTENT_LENGTH"]); var filename = Path.GetFileNameWithoutExtension(qqfile); var ext = Path.GetExtension(qqfile); var uploader = new FileHandler(filename.ToSafeUrl() + ext, UploaderType.HOMEWORK, sessionid); bool ok = uploader.Save(Request.InputStream); if (!ok) { return(Json("An error has occurred. Unable to save file".ToJsonFail())); } // save to database var homeworkstudent = db.homework_students.SingleOrDefault(x => x.studentid == sessionid.Value && x.id == id); var answer = new homework_answer(); answer.created = DateTime.Now; answer.url = uploader.url; answer.filename = qqfile; answer.size = uploader.size; answer.homeworkid = homeworkstudent.homeworkid; homeworkstudent.homework_answers.Add(answer); repository.Save(); // notify teacher? if (homeworkstudent.homework.notifyme) { var viewmodel = new NotificationSendViewModel(); var studentname = homeworkstudent.user.ToName(); viewmodel.message = string.Format( "An answer has been uploaded by <a href='http://wwww.ioschools.edu.my/users/{0}'>{1}</a>", homeworkstudent.studentid, studentname); viewmodel.message += string.Format("<br/> To view your homeworks. <a href='http://wwww.ioschools.edu.my/homework'>Please follow this link</a>."); var teacher = homeworkstudent.homework.user; if (!string.IsNullOrEmpty(teacher.email)) { viewmodel.receiver = teacher.ToName(); this.SendEmailNow( EmailViewType.HOMEWORK_NOTIFICATION, viewmodel, string.Format("Homework {0}: Answer uploaded by {1}", homeworkstudent.homework.title, studentname), teacher.email, viewmodel.receiver); } } var retVal = new IdName(answer.id, uploader.filename); return(Json(retVal.ToJsonOKData())); }
public ActionResult Send(string message, IEnumerable <long> parent, bool use_email, bool use_SMS) { if (parent == null) { return(Json("No parent/guardian was specified".ToJsonFail())); } var viewmodel = new NotificationSendViewModel(); viewmodel.message = message; var parentsList = new List <user>(); foreach (var p in parent) { var usrparent = repository.GetUser(p); if (usrparent == null) { return(SendJsonErrorResponse("Could not locate parent")); } if (use_email && string.IsNullOrEmpty(usrparent.email)) { return(SendJsonErrorResponse("A parent has no email address. Notification not sent.")); } if (use_SMS && string.IsNullOrEmpty(usrparent.phone_cell)) { return(SendJsonErrorResponse("A parent has no cell phone number. Notification not sent.")); } parentsList.Add(usrparent); } foreach (var entry in parentsList) { if (use_email) { viewmodel.receiver = entry.ToName(); this.SendEmailNow( EmailViewType.PARENT_NOTIFICATION, viewmodel, " School Attendance Info", entry.email, viewmodel.receiver); } if (use_SMS) { Clickatell.Send(message, entry.phone_cell); } } return(Json("Notification sent successfully".ToJsonOKMessage())); }
public ActionResult Send(long studentid, string message, IEnumerable <long> parent, bool use_email, bool use_SMS) { if (parent == null) { return(Json("No parent/guardian was specified".ToJsonFail())); } // get headmaster/headmistress emails to CC var year = DateTime.Now.Year; var schoolid = repository.GetUser(studentid).classes_students_allocateds.Where(x => x.year == year).Select( x => x.school_class.schoolid).FirstOrDefault(); var admins = repository.GetUsers(null, null, schoolid, null, UserGroup.HEAD, null, null, null, year, null); var cclist = admins.Select(x => x.email); var viewmodel = new NotificationSendViewModel(); viewmodel.message = message; var parentsList = new List <user>(); foreach (var p in parent) { var usrparent = repository.GetUser(p); if (usrparent == null) { return(SendJsonErrorResponse("Could not locate parent")); } if (use_email && string.IsNullOrEmpty(usrparent.email)) { return(SendJsonErrorResponse("A parent has no email address. Notification not sent.")); } if (use_SMS && string.IsNullOrEmpty(usrparent.phone_cell)) { return(SendJsonErrorResponse("A parent has no cell phone number. Notification not sent.")); } parentsList.Add(usrparent); } foreach (var entry in parentsList) { if (use_email) { viewmodel.receiver = entry.ToName(); this.SendEmailNow( EmailViewType.PARENT_NOTIFICATION, viewmodel, " School Student Conduct Info", entry.email, viewmodel.receiver, "", cclist); } if (use_SMS) { Clickatell.Send(message, entry.phone_cell); foreach (var number in admins.Select(x => x.phone_cell)) { if (!string.IsNullOrEmpty(number)) { Clickatell.Send(message, number); } } } } return(Json("Notification sent successfully".ToJsonOKMessage())); }