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));
            }
        }
Beispiel #2
0
        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));
            }
        }
Beispiel #3
0
        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));
            }
        }