public async Task <ActionResult> ContactUsSubmission(ContactUsViewModel contactUs) { ViewBag.ModelState = ModelState; if (ModelState.IsValid) { var emailReference = GenerateEmailReference(contactUs); ViewBag.EmailReference = emailReference; try { var placeholders = new Dictionary <string, dynamic> { { "EmailReference ", emailReference }, { "Name", FormFieldSanitizer.SanitizeFormField(contactUs.Name) }, { "Email", FormFieldSanitizer.SanitizeFormField(contactUs.Email) }, { "SchoolTrustName", FormFieldSanitizer.SanitizeFormField(contactUs.SchoolTrustName) ?? "N/A" }, { "Message", contactUs.Message } }; await _emailSender.SendContactUsUserEmailAsync(contactUs.Email, placeholders); await _emailSender.SendContactUsDfEEmailAsync(ConfigurationManager.AppSettings["SRMEmailAddress"], placeholders); } catch (HttpRequestValidationException exc) { var enableAITelemetry = WebConfigurationManager.AppSettings["EnableAITelemetry"]; if (enableAITelemetry != null && bool.Parse(enableAITelemetry)) { var ai = new TelemetryClient(); ai.TrackException(exc); ai.TrackTrace($"Contact us email rejected due to SQL injection attack!"); ai.TrackTrace($"Contact us email sending failed for: {contactUs.Name} - ({contactUs.SchoolTrustName}) ({contactUs.Email}) - ref: {emailReference}"); } throw exc; } catch (Exception exception) { var enableAITelemetry = WebConfigurationManager.AppSettings["EnableAITelemetry"]; if (enableAITelemetry != null && bool.Parse(enableAITelemetry)) { var ai = new TelemetryClient(); ai.TrackException(exception); ai.TrackTrace($"Contact us email sending error: {exception.Message}"); ai.TrackTrace($"Contact us email sending failed for: {contactUs.Name} ({contactUs.Email}) - ref: {emailReference}"); } throw; } return(View("ContactUsConfirmation")); } else { return(View("index", contactUs)); } }
public async Task <ActionResult> GetInvolvedSubmission(GetInvolvedViewModel getInvolved) { ViewBag.ModelState = ModelState; if (ModelState.IsValid) { var placeholders = new Dictionary <string, dynamic> { { "Name", FormFieldSanitizer.SanitizeFormField(getInvolved.Name) }, { "Email", getInvolved.Email }, }; try { await _emailSender.SendGetInvolvedEmailAsync(ConfigurationManager.AppSettings["SRMEmailAddress"], placeholders); } catch (HttpRequestValidationException exc) { var enableAITelemetry = WebConfigurationManager.AppSettings["EnableAITelemetry"]; if (enableAITelemetry != null && bool.Parse(enableAITelemetry)) { var ai = new TelemetryClient(); ai.TrackException(exc); ai.TrackTrace($"Get involved email rejected due to SQL injection attack!"); ai.TrackTrace($"Contact us email sending failed for: {getInvolved.Name} - ({getInvolved.Email})"); } throw exc; } catch (Exception exception) { var enableAITelemetry = WebConfigurationManager.AppSettings["EnableAITelemetry"]; if (enableAITelemetry != null && bool.Parse(enableAITelemetry)) { var ai = new TelemetryClient(); ai.TrackException(exception); ai.TrackTrace($"Get involved email sending error: {exception.Message}"); ai.TrackTrace($"Get involved email sending failed for: {getInvolved.Name} ({getInvolved.Email})"); } throw; } SetRecruitmentBannerCookie(); return(View("GetInvolvedConfirmation")); } else { return(View("GetInvolved", getInvolved)); } }
public async Task <ActionResult> DataQuerySubmission(DataQueryViewModel dataQuery, long?urn, string schoolName) { ViewBag.ModelState = ModelState; if (ModelState.IsValid) { var emailReference = GenerateEmailReference(dataQuery); ViewBag.EmailReference = emailReference; var placeholders = new Dictionary <string, dynamic> { { "EmailReference ", emailReference }, { "Name", FormFieldSanitizer.SanitizeFormField(dataQuery.Name) }, { "Email", dataQuery.Email }, { "SchoolTrustName", FormFieldSanitizer.SanitizeFormField(dataQuery.SchoolTrustName) }, { "SchoolTrustReferenceNumber", FormFieldSanitizer.SanitizeFormField(dataQuery.SchoolTrustReferenceNumber) }, { "DataQuery", dataQuery.DataQuery } }; try { await _emailSender.SendDataQueryUserEmailAsync(dataQuery.Email, placeholders); await _emailSender.SendDataQueryDfEEmailAsync(ConfigurationManager.AppSettings["SRMEmailAddress"], placeholders); } catch (HttpRequestValidationException exc) { var enableAITelemetry = WebConfigurationManager.AppSettings["EnableAITelemetry"]; if (enableAITelemetry != null && bool.Parse(enableAITelemetry)) { var ai = new TelemetryClient(); ai.TrackException(exc); ai.TrackTrace($"Data query email rejected due to SQL injection attack!"); ai.TrackTrace($"Data query email sending failed for: {dataQuery.Name} - ({dataQuery.Email}) ({dataQuery.SchoolTrustName}) ({dataQuery.SchoolTrustReferenceNumber})"); } throw exc; } catch (Exception exception) { var enableAITelemetry = WebConfigurationManager.AppSettings["EnableAITelemetry"]; if (enableAITelemetry != null && bool.Parse(enableAITelemetry)) { var ai = new TelemetryClient(); ai.TrackException(exception); ai.TrackTrace($"Data query email sending error: {exception.Message}"); ai.TrackTrace($"Data query email sending failed for: {dataQuery.Name} ({dataQuery.Email}) - ref: {emailReference}"); } throw; } ViewBag.Urn = urn; ViewBag.SchoolName = schoolName; return(View("DataQueryConfirmation")); } else { ViewBag.Urn = urn; ViewBag.SchoolName = schoolName; return(View("DataQueries", dataQuery)); } }