/// <summary> /// The generate email body. /// </summary> /// <param name="page10ViewData"> /// The page 10 View Data. /// </param> /// <returns> /// The <see cref="string"/>. /// </returns> private string GenerateEmailBody(Page10ViewData page10ViewData) { using (StringWriter writer = new StringWriter()) { this.ViewData.Model = page10ViewData; ViewEngineResult result = ViewEngines.Engines.FindPartialView(this.ControllerContext, "TournamentRegistration/EmailPartial"); ViewContext viewContext = new ViewContext(this.ControllerContext, result.View, this.ViewData, this.TempData, writer); result.View.Render(viewContext, writer); return(writer.GetStringBuilder().ToString()); } }
public ActionResult Page10(int id) { string judgeFirstName; string judgeLastName; if (this.CurrentRegistrationState != RegistrationState.Available) { return(this.RedirectToAction(this.CurrentRegistrationState.ToString())); } var viewData = new Page10ViewData(); this.SetBaseViewData(viewData); // Build the e-mail subject in case an error occurs. var emailSubject = string.Format("Error: {0} Odyssey Region {1} Tournament Registration", viewData.RegionName, viewData.RegionNumber); short?judgeId = this.Repository.GetJudgeIdFromTournamentRegistrationId(id); if (judgeId.HasValue) { // Attempt to write the Tournament Registration ID into the correct Judge record. string errorMessage; this.Repository.UpdateJudgeRecordWithTournamentRegistrationId(judgeId, id, out errorMessage); if (!string.IsNullOrWhiteSpace(errorMessage)) { viewData.JudgeErrorMessage = errorMessage; // Instantiate a new instance of MailMessage var errorMailMessage = this.BuildMessage( viewData.Config["WebmasterEmail"], emailSubject, string.Format("<p>Team with ID # {0} attempted to re-register after its judge was assigned to the team.</p><p>{1}</p>", id, errorMessage), viewData.Config["WebmasterEmail"], null, null); // Instantiate a new instance of SmtpClient. viewData.MailErrorMessage = this.SendMessage(viewData, errorMailMessage); return(this.View(viewData)); } } else { // No Judge ID was found for this team, so send an error message e-mail. var errorMailMessage = this.BuildMessage( viewData.Config["WebmasterEmail"], emailSubject, string.Format("<p>Team with ID # {0} attempted to register, but no Judge ID was found in the TournamentRegistration table for the team.</p>", id), viewData.Config["WebmasterEmail"], null, null); // Instantiate a new instance of SmtpClient. viewData.MailErrorMessage = this.SendMessage(viewData, errorMailMessage); // TODO: Does this actually display the error to the user? - Rob, 01/18/2015. viewData.JudgeErrorMessage = "No Judge ID could be found in the TournamentRegistration table for your team. Please contact the Webmaster."; return(this.View(viewData)); } ////int? volunteerId = this.Repository.GetVolunteerIdFromTournamentRegistrationId(id); ////if (volunteerId.HasValue) ////{ //// // Attempt to write the Tournament Registration ID into the correct Volunteer record. //// this.Repository.UpdateVolunteerRecordWithTournamentRegistrationId(volunteerId.Value, id, out errorMessage); //// if (!string.IsNullOrEmpty(errorMessage)) //// { //// viewData = new Page10ViewData //// { //// VolunteerErrorMessage = errorMessage //// }; //// this.SetBaseViewData(viewData); //// // Instantiate a new instance of MailMessage. //// errorMailMessage = this.BuildMessage( //// viewData.Config["WebmasterEmail"], //// "Error: " + viewData.RegionName + " Odyssey Region " + viewData.RegionNumber + " Tournament Registration", //// string.Concat("<p>Team with ID # ", id, " attempted to re-register after its volunteer was assigned to the team.</p><p>", errorMessage, "</p>"), //// viewData.Config["WebmasterEmail"], //// null, //// null); //// // Instantiate a new instance of SmtpClient. //// viewData.MailErrorMessage = this.SendMessage(viewData, errorMailMessage); //// return this.View(viewData); //// } ////} // The Tournament Registration ID was successfully written into the correct Judge and Volunteer records. viewData = new Page10ViewData { TournamentInfo = this.Repository.TournamentInfo, TournamentRegistration = this.Repository.GetTournamentRegistrationById(id) }; // Update the DateTime of the registration in the TournamentRegistration record. viewData.TournamentRegistration.TimeRegistered = DateTime.Now; this.Repository.UpdateTournamentRegistration(id, 10, viewData.TournamentRegistration); this.SetBaseViewData(viewData); this.Repository.GetJudgeNameFromJudgeId(judgeId, out judgeFirstName, out judgeLastName); viewData.JudgeFirstName = judgeFirstName; viewData.JudgeLastName = judgeLastName; ////Volunteer volunteerById = this.Repository.GetVolunteerById(viewData.TournamentRegistration.VolunteerID); ////viewData.VolunteerFirstName = volunteerById.FirstName; ////viewData.VolunteerLastName = volunteerById.LastName; viewData.SchoolName = this.Repository.GetSchoolNameFromSchoolId(viewData.TournamentRegistration.SchoolID); viewData.ProblemName = this.Repository.GetProblemNameFromProblemId(viewData.TournamentRegistration.ProblemID); viewData.Division = (viewData.TournamentRegistration.Division == "0") ? "Primary" : viewData.TournamentRegistration.Division; viewData.MailBody = this.GenerateEmailBody(viewData); // Instantiate a new instance of MailMessage. MailMessage mailMessage = this.BuildMessage( viewData.Config["WebmasterEmail"], viewData.RegionName + " Odyssey Region " + viewData.RegionNumber + " Tournament Registration", viewData.MailBody, viewData.TournamentRegistration.CoachEmailAddress, null, null); // Instantiate a new instance of SmtpClient. viewData.MailErrorMessage = this.SendMessage(viewData, mailMessage); return(this.View(viewData)); }
public ActionResult ResendEmail(FormCollection collection) { ResendEmailViewData model = new ResendEmailViewData(); this.UpdateModel(model); Page10ViewData viewData = new Page10ViewData { TournamentInfo = this.Repository.TournamentInfo, TournamentRegistration = this.Repository.GetTournamentRegistrationById(model.TeamNumber) }; this.SetBaseViewData(viewData); // Make sure at least one of the two check boxes was checked. if ((model.CoachCheckbox == "false") && (model.AltCoachCheckbox == "false")) { model.ErrorMessage = "No one was selected to resend the registration information to, so no e-mail was sent."; model.Success = false; return(this.View(model)); } string recipientList = string.Empty; if (model.CoachCheckbox == "true") { recipientList += viewData.TournamentRegistration.CoachEmailAddress; } if (model.AltCoachCheckbox == "true") { if (!string.IsNullOrEmpty(recipientList)) { recipientList = recipientList + ","; } recipientList += viewData.TournamentRegistration.AltCoachEmailAddress; } string judgeFirstName; string judgeLastName; this.Repository.GetJudgeNameFromJudgeId(viewData.TournamentRegistration.JudgeID, out judgeFirstName, out judgeLastName); viewData.JudgeFirstName = judgeFirstName; viewData.JudgeLastName = judgeLastName; ////Volunteer volunteerById = this.Repository.GetVolunteerById(viewData.TournamentRegistration.VolunteerID); ////viewData.VolunteerFirstName = volunteerById.FirstName; ////viewData.VolunteerLastName = volunteerById.LastName; viewData.SchoolName = this.Repository.GetSchoolNameFromSchoolId(viewData.TournamentRegistration.SchoolID); viewData.ProblemName = this.Repository.GetProblemNameFromProblemId(viewData.TournamentRegistration.ProblemID); viewData.MailBody = this.GenerateEmailBody(viewData); // Instantiate a new instance of MailMessage. MailMessage mailMessage = this.BuildMessage( viewData.Config["WebmasterEmail"], viewData.RegionName + " Odyssey Region " + viewData.RegionNumber + " Tournament Registration", viewData.MailBody, recipientList, "*****@*****.**", null); // Instantiate a new instance of SmtpClient. model.ErrorMessage = this.SendMessage(model, mailMessage); model.Success = true; return(this.View(model)); }