public async Task <GeneralResponse> SendEmail(User user) { var roles = await _userManager.GetRolesAsync(user); var role = roles.Contains(RoleConstants.APPLICANT) ? "Applicant" : "Client"; var totalUsersInRole = await _userManager.GetUsersInRoleAsync(role); using (var client = new AmazonSimpleEmailServiceClient(new EnvironmentVariablesAWSCredentials(), RegionEndpoint.USWest2)) { var sendRequest = new SendEmailRequest { Source = ConstantStrings.EMAIL_SENDER, Destination = new Destination { ToAddresses = new List <string> { ConstantStrings.EMAIL_RECIEVER } }, Message = new Message { Subject = new Content("New user registration"), Body = new Body { Html = new Content { Charset = "UTF-8", Data = await _emailTemplate.NewUserTemplate(user) }, Text = new Content { Charset = "UTF-8", Data = $"New {role} has just registered!" + $"Dear Admin," + $"This email was sent to you to notify when a user is registered on your website." + $"The new {role} with email {user.Email} became the {totalUsersInRole.Count + " "}{role} on your application!" } } }, }; var emailResponse = new SendEmailResponse(); var generalResponse = new GeneralResponse(); try { emailResponse = await client.SendEmailAsync(sendRequest); generalResponse.Succeeded = true; return(generalResponse); } catch (Exception e) { return(generalResponse.ErrorHandling <EmailSenderManager>(emailResponse.MessageId, objects: (sendRequest, e))); } } }