diff --git a/Server/Pages/GetSupport.cshtml.cs b/Server/Pages/GetSupport.cshtml.cs index 4453dc79..0e642b51 100644 --- a/Server/Pages/GetSupport.cshtml.cs +++ b/Server/Pages/GetSupport.cshtml.cs @@ -8,14 +8,15 @@ namespace Remotely.Server.Pages { public class GetSupportModel : PageModel { - public GetSupportModel(IDataService dataService) + private readonly IDataService _dataService; + private readonly IEmailSenderEx _emailSender; + + public GetSupportModel(IDataService dataService, IEmailSenderEx emailSender) { - DataService = dataService; + _dataService = dataService; + _emailSender = emailSender; } - - private IDataService DataService { get; } - [TempData] public string StatusMessage { get; set; } @@ -34,14 +35,25 @@ namespace Remotely.Server.Pages return Page(); } - var orgID = DataService.GetDevice(deviceID)?.OrganizationID; + var orgID = _dataService.GetDevice(deviceID)?.OrganizationID; - var alertMessage = $"{Input.Name} is requesting support. " + - $"Email: {Input.Email}. " + - $"Phone: {Input.Phone}. " + - $"Chat OK: {Input.ChatResponseOk}."; + var alertParts = new string[] + { + $"{Input.Name} is requesting support.", + $"Email: {Input.Email}.", + $"Phone: {Input.Phone}.", + $"Chat OK: {Input.ChatResponseOk}." + }; - await DataService.AddAlert(deviceID, orgID, alertMessage); + var alertMessage = string.Join(" ", alertParts); + await _dataService.AddAlert(deviceID, orgID, alertMessage); + + var orgUsers = _dataService.GetAllUsersInOrganization(orgID); + var emailMessage = string.Join("
", alertParts); + foreach (var user in orgUsers) + { + await _emailSender.SendEmailAsync(user.Email, "Support Request", emailMessage); + } StatusMessage = "We got it! Someone will contact you soon.";