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)); } }
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); }); }