public async Task <IActionResult> OrderEmails([FromRoute] int eventId, [FromServices] StandardEmailSender emailSender, [FromServices] IRegistrationService registrationService, [FromBody] EmailVm vm) { var registrations = await registrationService.GetRegistrationsWithOrders(eventId); var emailTasks = registrations.Select(r => { var message = new EmailMessage { Name = r.ParticipantName, Email = r.User.Email, Subject = vm.Subject, Message = vm.Message }; if (r.HasOrder) { StringBuilder builder = new StringBuilder(); builder.AppendLine("<br>"); builder.AppendLine("<h4>Ordre</h4>"); r.Orders.ForEach( (o) => o.OrderLines?.ForEach( (line) => builder.AppendLine($"<br>{line.ProductName}") ) ); message.Message += builder.ToString(); } return(emailSender.SendStandardEmailAsync(message)); }); await Task.WhenAll(emailTasks); return(Ok()); }
public MessagingController( StandardEmailSender emailSender, ISmsSender smsSender, IRegistrationService registrationService, IMessageLogService messageLog, RegistrationEmailSender registrationEmailSender) { _emailSender = emailSender; _registrationEmailSender = registrationEmailSender; _smsSender = smsSender; _messageLog = messageLog; _registrationService = registrationService; }
public ConfirmModel( ApplicationDbContext context, UserManager <ApplicationUser> userManager, RegistrationEmailSender registrationEmailSender, IRegistrationService registrationService, StandardEmailSender standardEmailSender ) { _context = context; _registrationEmailSender = registrationEmailSender; _userManager = userManager; _registrationService = registrationService; _standardEmailSender = standardEmailSender; }
static void Main(string[] args) { var emailAddress = ConfigurationManager.AppSettings["email"]; IDatabaseReader reader = new EFDatabaseReader("DefaultConnection"); IEmailSender sender = new StandardEmailSender(emailAddress); HostFactory.Run( x => { x.Service <EmailService>(conf => { conf.ConstructUsing(() => new EmailService(reader, sender)); conf.WhenStarted(s => s.Start()); conf.WhenStopped(s => s.Stop()); }); x.SetServiceName("Email Sender Service"); }); }
public async Task <IActionResult> EmailCertificate([FromRoute] int regId, [FromServices] CertificatePdfRenderer writer, [FromServices] StandardEmailSender emailSender) { var c = await _certificatesService.GetForRegistrationAsync(regId); var result = await writer.RenderAsync(CertificateVM.From(c)); var memoryStream = new MemoryStream(); await result.CopyToAsync(memoryStream); var emailMessage = new EmailMessage { Email = c.RecipientEmail, Subject = $"Kursbevis for {c.Title}", Message = "Her er kursbeviset! Gratulere!", Attachment = new Attachment { Filename = "kursbevis.pdf", Bytes = memoryStream.ToArray(), ContentType = "application/pdf" } }; await emailSender.SendStandardEmailAsync(emailMessage); return(Ok()); }
public async Task <IActionResult> GenerateCertificatesAndSendEmails([FromRoute] int eventId, [FromServices] CertificatePdfRenderer writer, [FromServices] StandardEmailSender emailSender) { var certificates = await _certificatesService.CreateCertificatesForEvent(eventId); foreach (var certificate in certificates) { var result = await writer.RenderAsync(CertificateVM.From(certificate)); var memoryStream = new MemoryStream(); await result.CopyToAsync(memoryStream); await emailSender.SendStandardEmailAsync(new EmailMessage { Email = certificate.RecipientEmail, Subject = $"Kursbevis for {certificate.Title}", Message = "Her er kursbeviset! Gratulere!", Attachment = new Attachment { Filename = "kursbevis.pdf", Bytes = memoryStream.ToArray(), ContentType = "application/pdf" } }); } return(Ok()); }