public IActionResult SendNotifications(AdminViewData updatedModel) { ApplicationContext appContext = new ApplicationContext(this.Cache); if (ViewData.ModelState["NotificationDays"].Errors.Count == 0) { UserSessionContext userContext = new UserSessionContext(this.HttpContext); LessonBusiness businessManager = new LessonBusiness(DbContext); var notificationType = (Enumerations.NotificationEmailType)updatedModel.EmailNotificationType; List <Lesson> lessons = businessManager.GetLessonsForNotification(notificationType, updatedModel.NotificationDays); if (lessons != null && lessons.Count > 0) { List <EmailInfo> emailList = new List <EmailInfo>(); foreach (var lesson in lessons) { //If this key exists in the web.config, re-direct all eamils to that address. string overrideEmailAddress = Utility.SafeGetAppConfigSetting <string>("Debug_OverrideEmailAddress", null); EmailTemplateViewData model = new EmailTemplateViewData(LessonViewModel.ToViewModel(this.HttpContext, lesson), notificationType, appContext, overrideEmailAddress); string emailMessageBody = Utils.RenderPartialViewToString(this, "EmailTemplate", model); EmailInfo emailInfo = new EmailInfo { Body = emailMessageBody, MailTo = model.Redirecting ? model.OverrideMailTo : model.MailTo, Subject = model.Subject }; emailList.Add(emailInfo); } businessManager.SendEmails(emailList); } this.SetEmailsSent(); return(RedirectPermanent("Index")); } ModelState.Clear(); AddError("X Days is invalid"); return(Index()); }