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>");
        }
Esempio n. 2
0
        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);
        }
Esempio n. 4
0
        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);
        }