Esempio n. 1
0
        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;
 }
Esempio n. 4
0
        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");
            });
        }
Esempio n. 5
0
        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());
        }
Esempio n. 6
0
        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());
        }