/// <summary>
 ///     Default constructor with DI
 /// </summary>
 /// <param name="serviceOptions">Configuration options</param>
 /// <param name="logger">An instance of ILogger for recording</param>
 /// <param name="hostingEnvironment">Current environment information</param>
 /// <param name="emailTemplateFactory">The ICG Email Template Factory for formatting messages</param>
 public MimeMessageFactory(IOptions <SmtpServiceOptions> serviceOptions, ILogger <MimeMessageFactory> logger, IHostingEnvironment hostingEnvironment, IEmailTemplateFactory emailTemplateFactory)
 {
     _serviceOptions       = serviceOptions.Value;
     _logger               = logger;
     _hostingEnvironment   = hostingEnvironment;
     _emailTemplateFactory = emailTemplateFactory;
 }
        public async Task <IActionResult> Order(
            [FromServices] IEmailSink emailSink,
            [FromServices] IWebHostEnvironment env,
            [FromServices] GetOrder getOrder,
            [FromServices] IEmailTemplateFactory etf)
        {
            if (env.IsProduction())
            {
                return(Ok());
            }

            var order = getOrder.ForUserById("dummy");
            // var templatePath = Path.Combine(env.WebRootPath, "email-templates", "order.liquid");
            // var templateString = await System.IO.File.ReadAllTextAsync(templatePath);
            // var template = Template.Parse(templateString);

            await emailSink.SendAsync(new SendEmailRequest
            {
                Subject = $"Order Placed, {order.Id}",
                To      = "*****@*****.**",
                Message = await etf.RenderShippingConfirmationAsync(order),// template.Render(Hash.FromAnonymousObject(OrderProjections.Project(order))),
                Html    = true,
            });

            return(Ok());
        }
 public ProcessOrder(
     IOrderManager orderManager,
     IEmailSink emailSink,
     IEmailTemplateFactory emailTemplateFactory)
 {
     _orderManager         = orderManager;
     _emailSink            = emailSink;
     _emailTemplateFactory = emailTemplateFactory;
 }
Esempio n. 4
0
 public CreateOrder(
     IOrderManager orderManager,
     CartCheckout cartCheckout,
     IEmailSink emailSink,
     IEmailTemplateFactory emailTemplateFactory)
 {
     _orderManager         = orderManager;
     _cartCheckout         = cartCheckout;
     _emailSink            = emailSink;
     _emailTemplateFactory = emailTemplateFactory;
 }
Esempio n. 5
0
 public AccountManager(
     UserManager <User> userManager,
     IEmailSink emailSink,
     IEmailTemplateFactory emailTemplateFactory,
     IUrlHelper urlHelper,
     HostSettings hostSettings)
 {
     _userManager          = userManager;
     _emailSink            = emailSink;
     _emailTemplateFactory = emailTemplateFactory;
     _urlHelper            = urlHelper;
     _hostSettings         = hostSettings;
 }
Esempio n. 6
0
 public EmailContentFactoryTests()
 {
     _hostingEnvironmentMock = new Mock <IHostingEnvironment>();
     _hostingEnvironmentMock.Setup(h => h.ContentRootPath).Returns("..\\..\\..\\"); //Provides a path back to the root of the test project
     _emailTemplateSettingsMock = new Mock <IOptions <EmailTemplateSettings> >();
     _emailTemplateSettingsMock.Setup(s => s.Value).Returns(new EmailTemplateSettings
     {
         DefaultTemplatePath = "Templates\\default.html",
         AdditionalTemplates = new Dictionary <string, string> {
             { "Special", "Templates\\Special.html" }, { "Invalid", "invalid.html" }
         }
     });
     _factory = new EmailTemplateFactory(_emailTemplateSettingsMock.Object, _hostingEnvironmentMock.Object);
 }
 public EmailMessageComposer(IEmailTemplateFactory templateFactory)
 {
     _templateFactory = templateFactory;
 }
Esempio n. 8
0
 public EmailHandler(IEmailTemplateFactory factory)
 {
     this.factory = factory;
 }