Added training reminder worker

This commit is contained in:
Chase Tucker
2024-04-10 09:59:55 -07:00
parent 156dee0751
commit ed89f25dad
9 changed files with 394 additions and 9 deletions

View File

@ -8,6 +8,7 @@ public interface IECNService {
Task<IEnumerable<ECN>> GetExpiringTECNs();
Task<IEnumerable<ECN>> GetExpiredTECNs();
Task<IEnumerable<string>> GetTECNNotificationUserEmails();
Task<ECN> GetEcnByNumber(int ecnNumber);
}
public class ECNService : IECNService {
@ -19,6 +20,28 @@ public class ECNService : IECNService {
_dalService = dalService ?? throw new ArgumentNullException("IDalService not injected");
}
public async Task<ECN> GetEcnByNumber(int ecnNumber) {
try {
_logger.LogInformation($"Attempting to get ECN {ecnNumber}");
if (ecnNumber <= 0) throw new ArgumentException($"{ecnNumber} not a valid ECN number");
string sql = $"select * from ECN where ECNNumber = {ecnNumber}";
ECN? ecn = (await _dalService.QueryAsync<ECN>(sql)).FirstOrDefault();
if (ecn is null) throw new Exception($"ECN {ecnNumber} not found");
return ecn;
} catch (Exception ex) {
StringBuilder errMsgBuilder = new();
errMsgBuilder.Append($"An exception occurred when attempting to get ECN {ecnNumber}. ");
errMsgBuilder.Append($"Exception: {ex.Message}");
_logger.LogError(errMsgBuilder.ToString());
throw;
}
}
public async Task<IEnumerable<ECN>> GetExpiredTECNs() {
try {
_logger.LogInformation("Attempting to get all TECNs expired in the last day");