Example #1
0
        public IActionResult Post([FromQuery][Required] string region, [FromBody] TelephoneCallbackRequest telephoneCallbackRequest)
        {
            NullCheck.ThrowIfNull <TelephoneCallbackRequest>(telephoneCallbackRequest);

            try
            {
                _configurationService.ThrowIfUnknownRegion(region);
                _mailInputValidatorService.validateMail(telephoneCallbackRequest.email);
                this._mailService.SendTelephoneCallbackMailAsync(region, telephoneCallbackRequest);
                return(Ok());
            }
            catch (ArgumentException e)
            {
                return(BadRequest(e.Message));
            }
        }
Example #2
0
        public async Task SendTelephoneCallbackMailAsync(string region, TelephoneCallbackRequest telephoneCallbackRequest)
        {
            await Task.Run(async() =>
            {
                // Substring() to prevent too long subjects.
                string subject = $"[Rückrufanfrage] " +
                                 $"[Region: {region}] [Thema: {telephoneCallbackRequest.topic.Substring(0, Math.Min(telephoneCallbackRequest.topic.Length, 20))}] " +
                                 $"von {telephoneCallbackRequest.name.Substring(0, Math.Min(telephoneCallbackRequest.name.Length, 30))}";
                string content = $"Eine Rückrufanfrage:\n\nVon: {telephoneCallbackRequest.name}\n" +
                                 $"Datum: {DateTime.Now.ToShortDateString()} {DateTime.Now.ToLongTimeString()}\n" +
                                 $"Region: {region}\n" +
                                 $"Thema: {telephoneCallbackRequest.topic}\n" +
                                 $"Telefonnummer: {telephoneCallbackRequest.phone}\n" +
                                 $"Email: {telephoneCallbackRequest.email}\n" +
                                 $"Kommentar: {telephoneCallbackRequest.notes}\n\n\n" +
                                 $"Liebe Grüße\nDein Backend-Server";

                await SendMailAsync(this._defaultMailSender.mailSenderAddress, subject, content);
            });
        }