Start Job Cleanup Service
This commit is contained in:
+10
-2
@@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Authentication.JwtBearer;
|
||||
using Microsoft.IdentityModel.Tokens;
|
||||
using System.IdentityModel.Tokens.Jwt;
|
||||
using System.Security.Cryptography;
|
||||
using BoredCareers.Services.TimerService;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
@@ -35,8 +36,15 @@ string? _dbpass = Environment.GetEnvironmentVariable("MySQLPass");
|
||||
string dbPass = !string.IsNullOrEmpty(_dbpass) ? _dbpass : "oasv34$8gpv023dd";
|
||||
|
||||
// Create the database serivice
|
||||
DatabaseService databaseService = new DatabaseService(connectionString: "server=" + dbserver + ";user=" + dbUser + ";database=" + dbdatabase + ";password=" + dbPass + ";port=3306;");
|
||||
builder.Services.Add( new ServiceDescriptor( typeof( DatabaseService ), databaseService ) );
|
||||
builder.Services.AddSingleton<DatabaseService>(sp =>
|
||||
new DatabaseService("server=" + dbserver + ";user=" + dbUser + ";database=" + dbdatabase + ";password=" + dbPass + ";port=3306;")
|
||||
);
|
||||
|
||||
////////////////////////////////
|
||||
/////// Timer Service ///////
|
||||
////////////////////////////////
|
||||
|
||||
builder.Services.AddHostedService<JobCleanupService>();
|
||||
|
||||
////////////////////////////////
|
||||
///////// Email Service ////////
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
using BoredCareers.Entities;
|
||||
|
||||
namespace BoredCareers.Services.TimerService {
|
||||
public class JobCleanupService : BackgroundService {
|
||||
|
||||
private readonly DatabaseService.DatabaseService _db;
|
||||
|
||||
public JobCleanupService(DatabaseService.DatabaseService db) {
|
||||
_db = db;
|
||||
}
|
||||
|
||||
protected override async Task ExecuteAsync(CancellationToken stoppingToken) {
|
||||
while (!stoppingToken.IsCancellationRequested) {
|
||||
try {
|
||||
JobListing[] deletedJobListings = await _db.GetJobListingsPastExipre();
|
||||
await _db.DeleteJobListingsPastExipre();
|
||||
foreach (JobListing listing in deletedJobListings) {
|
||||
// Get applicants for each closed listing
|
||||
// Notify applicants of the listing closing
|
||||
// Mark company for auto-closed job -> ghost listing
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Console.WriteLine($"Error: {e.Message}");
|
||||
}
|
||||
await Task.Delay(TimeSpan.FromHours(24), stoppingToken);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user