public string UserEmailBody(TeamSignUpFormViewModel email) { return($@"<html lang='en'> <head> <meta charset='utf-8'> <meta name='viewport' content='initial-scale=1, maximum-scale=1'> <meta name='viewport' content='width=device-width, initial-scale=1'> <link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500' rel='stylesheet'> <link href='https://fonts.googleapis.com/css?family=Roboto&display=swap' rel='stylesheet'> </style> </head> <body style='height: 100vh; font-family: 'Roboto', sans-serif; color:white; text-align: center'> <div style='margin-bottom: 35px'> <img src='https://res.cloudinary.com/dwsvaiiox/image/upload/v1562171421/movies-place/itmfvw7fogexa8xqyzbg.png' style='max-width:100%; max-height:185px; margin: 0 auto; display: block'> </div> <div> <h3>Hey {email.Contact.FirstName}, this is Nik from The P League, I am the owner and organizer. Just wanted to say thanks for your interested in this league I am always excited to have new teams come on board. I will get back to you very soon.This email confirms I have received your inquiry and I will be contacting you shortly.</h3> </div> <br> <div style='text-align: center; margin-bottom:10%'> <h4 style='font-weight: 900'> {_emailAppSettings[nameof(EmailServiceOptions.AdminEmail)]} </h4> <h4 style='font-weight: 900;'> {_emailAppSettings[nameof(EmailServiceOptions.AdminPhoneNumber)]} </h4> </div> </body> </html>"); }
public bool SendEmail(TeamSignUpFormViewModel email) { bool success = false; try { // Create the template class TeamSignUpTemplate teamSignUpTemplate = new TeamSignUpTemplate(this._emailAppSettings); // Message to User MimeMessage messageToUser = new MimeMessage(); // Add From messageToUser.From.Add(new MailboxAddress(this._emailAppSettings[nameof(EmailServiceOptions.Admin)], this._emailAppSettings[nameof(EmailServiceOptions.AdminEmail)])); // Add TO messageToUser.To.Add(new MailboxAddress(User, email.Contact.Email)); // Add Subject messageToUser.Subject = teamSignUpTemplate.SubjectForUser(email.Name); BodyBuilder bodyBuilderForUser = new BodyBuilder(); bodyBuilderForUser.HtmlBody = teamSignUpTemplate.UserEmailBody(email); messageToUser.Body = bodyBuilderForUser.ToMessageBody(); // Message To Admin MimeMessage messageToAdmin = new MimeMessage(); // Add From messageToAdmin.From.Add(new MailboxAddress(this._emailAppSettings[nameof(EmailServiceOptions.Admin)], this._emailAppSettings[nameof(EmailServiceOptions.SystemAdminEmail)])); // Add TO messageToAdmin.To.Add(new MailboxAddress(this._emailAppSettings[nameof(EmailServiceOptions.Admin)], this._emailAppSettings[nameof(EmailServiceOptions.AdminEmail)])); // Add Subject messageToAdmin.Subject = teamSignUpTemplate.SubjectForAdmin(); BodyBuilder bodyBuilderForAdmin = new BodyBuilder(); bodyBuilderForAdmin.HtmlBody = teamSignUpTemplate.AdminEmailBody(email); messageToAdmin.Body = bodyBuilderForAdmin.ToMessageBody(); SmtpClient client = new SmtpClient(); client.Connect(this._emailAppSettings[nameof(EmailServiceOptions.SmtpServer)], int.Parse(this._emailAppSettings[nameof(EmailServiceOptions.Port)]), true); client.Authenticate(this._emailAppSettings[nameof(EmailServiceOptions.SystemAdminEmail)], this._configuration[nameof(VaultKeys.SystemAdminEmailPassword)]); client.Send(messageToUser); client.Send(messageToAdmin); client.Disconnect(true); client.Dispose(); success = true; } catch { success = false; } return(success); }
public static TeamSignUpFormViewModel Convert(TeamSignUpForm TeamSignUpForm) { TeamSignUpFormViewModel TeamSignUpFormViewModel = new TeamSignUpFormViewModel(); TeamSignUpFormViewModel.Id = TeamSignUpForm.Id; TeamSignUpFormViewModel.Name = TeamSignUpForm.Name; TeamSignUpFormViewModel.Contact = ContactConverter.Convert(TeamSignUpForm.Contact); return(TeamSignUpFormViewModel); }
public async Task <ActionResult <TeamSignUpFormViewModel> > TeamSignUp(TeamSignUpFormViewModel newTeamSignUpForm, CancellationToken ct = default(CancellationToken)) { if (!this._emailService.SendEmail(newTeamSignUpForm)) { return(BadRequest(Errors.AddErrorToModelState(ErrorCodes.SendEmail, ErrorDescriptions.SendEmailFailure, ModelState))); } newTeamSignUpForm = await this._supervisor.AddTeamSignUpFormAsync(newTeamSignUpForm, ct); return(newTeamSignUpForm); }
public string AdminEmailBody(TeamSignUpFormViewModel email) { return($@"<html lang='en'> <head> <meta charset='utf-8'> <meta name='viewport' content='initial-scale=1, maximum-scale=1'> <meta name='viewport' content='width=device-width, initial-scale=1'> <link href='https://fonts.googleapis.com/css?family=Roboto:300,400,500' rel='stylesheet'> <link href='https://fonts.googleapis.com/css?family=Roboto&display=swap' rel='stylesheet'> </style> </head> <body style='height: 100vh; font-family: 'Roboto', sans-serif; color:white; text-align: center'> <div> <img src='https://res.cloudinary.com/dwsvaiiox/image/upload/v1562171421/movies-place/itmfvw7fogexa8xqyzbg.png' style='max-width:100%; max-height:185px; margin: 0 auto; display: block'> </div> <div style='text-align: center'> <h3>There is a new team that is interested in joining the league</h3> </div> <br> <div style='margin-bottom: 10%'> <ul> <li>Team Name: {email.Name}</li> <li>First Name: {email.Contact.FirstName}</li> <li>Last Name: {email.Contact.LastName}</li> <li>Phone Number: {email.Contact.PhoneNumber}</li> <li>E-mail: {email.Contact.Email}</li> <li>Preferred Form of Contact: {(PreferredContact)email.Contact.PreferredContact}</li> </ul> </div> <div style='text-align: center; margin-bottom:10%'> <h4 style='font-weight: 900'> {_emailAppSettings[nameof(EmailServiceOptions.AdminEmail)]} </h4> <h4 style='font-weight: 900;'> {_emailAppSettings[nameof(EmailServiceOptions.AdminPhoneNumber)]} </h4> </div> </body> </html>"); }
public async Task <TeamSignUpFormViewModel> AddTeamSignUpFormAsync(TeamSignUpFormViewModel newTeamViewModel, CancellationToken ct = default(CancellationToken)) { TeamSignUpForm newTeamForm = new TeamSignUpForm() { Name = newTeamViewModel.Name }; newTeamForm = await this._teamSignUpRepository.AddSignUpFormAsync(newTeamForm); newTeamViewModel.Id = newTeamForm.Id; Contact teamContact = new Contact() { FirstName = newTeamViewModel.Contact.FirstName, LastName = newTeamViewModel.Contact.LastName, Email = newTeamViewModel.Contact.Email, PhoneNumber = newTeamViewModel.Contact.PhoneNumber, TeamSignUpFormId = newTeamViewModel.Id }; newTeamViewModel.Contact = ContactConverter.Convert(await this._teamSignUpRepository.AddTeamContactAsync(teamContact, ct)); return(newTeamViewModel); }