Last minute fix fix

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