Last minute fix fix

This commit is contained in:
Stefan
2023-06-14 08:51:23 +02:00
parent 672236fd7f
commit ecf70c4b93
@@ -1,29 +1,39 @@
namespace Elektrifikatsiya.Services.Implementations; using Elektrifikatsiya.Database;
using Elektrifikatsiya.Models;
namespace Elektrifikatsiya.Services.Implementations;
public class NotifcationService : INotificationService public class NotifcationService : INotificationService
{ {
private readonly IEmailService emailService; public TimeSpan ExecutionRepeatDelay => TimeSpan.FromDays(1);
private readonly IEnergyPriceService energyPriceService; public DateTime FirstExecutionTime => DateTime.Now.AddDays(0);
private readonly Microsoft.Extensions.Configuration.IConfiguration configuration; private readonly Microsoft.Extensions.Configuration.IConfiguration configuration;
private readonly ILogger<NotifcationService> logger; private readonly IEmailService emailService;
public TimeSpan ExecutionRepeatDelay => TimeSpan.FromDays(1); private readonly IEnergyPriceService energyPriceService;
public DateTime FirstExecutionTime => DateTime.Now.AddDays(0); private readonly ILogger<NotifcationService> logger;
private readonly MainDatabaseContext mainDatabaseContext;
public NotifcationService(ILogger<NotifcationService> logger, IEmailService emailService, IEnergyPriceService energyPriceService, Microsoft.Extensions.Configuration.IConfiguration configuration) public NotifcationService(ILogger<NotifcationService> logger, IEmailService emailService, IEnergyPriceService energyPriceService, Microsoft.Extensions.Configuration.IConfiguration configuration, IServiceScopeFactory serviceScopeFactory)
{ {
this.logger = logger; this.logger = logger;
this.emailService = emailService; this.emailService = emailService;
this.energyPriceService = energyPriceService; this.energyPriceService = energyPriceService;
this.configuration = configuration; this.configuration = configuration;
}
public async void Update() mainDatabaseContext = serviceScopeFactory.CreateScope().ServiceProvider.GetRequiredService<MainDatabaseContext>();
{ }
logger.LogInformation("Sending Email");
string url = configuration.GetValue<string>("Url") ?? "https://http.cat/images/404.jpg"; public async void Update()
{
logger.LogInformation("Sending Email");
await emailService.SendWithTemeplateAsync("[email protected]", "Daily Notification", "DailyNotification", templateParameters: new() { { "yesterday", $"{energyPriceService.DailyEnergyCost:F2}" }, { "yearly", $"{energyPriceService.YearlyEnergyCost:F2}" }, { "link", url } }); string url = configuration.GetValue<string>("Url") ?? "https://http.cat/images/404.jpg";
logger.LogInformation("Done sending");
} await foreach (User user in mainDatabaseContext.Users)
{
await emailService.SendWithTemeplateAsync(user.Email, "Daily Notification", "DailyNotification", templateParameters: new() { { "yesterday", $"{energyPriceService.DailyEnergyCost:F2}" }, { "yearly", $"{energyPriceService.YearlyEnergyCost:F2}" }, { "link", url } });
}
logger.LogInformation("Done sending");
}
} }