add Job Tasks to enable the execution of adhoc asynchronous site-based workloads

This commit is contained in:
sbwalker
2026-02-19 08:23:11 -05:00
parent 13a58ed099
commit 0fd97d34d9
23 changed files with 633 additions and 252 deletions

View File

@@ -136,5 +136,6 @@ namespace Oqtane.Repository
public virtual DbSet<MigrationHistory> MigrationHistory { get; set; }
public virtual DbSet<SiteGroup> SiteGroup { get; set; }
public virtual DbSet<SiteGroupMember> SiteGroupMember { get; set; }
public virtual DbSet<JobTask> JobTask { get; set; }
}
}

View File

@@ -61,8 +61,8 @@ namespace Oqtane.Repository
public void DeleteJobLog(int jobLogId)
{
JobLog joblog = _db.JobLog.Find(jobLogId);
_db.JobLog.Remove(joblog);
JobLog jobLog = _db.JobLog.Find(jobLogId);
_db.JobLog.Remove(jobLog);
_db.SaveChanges();
}
}

View File

@@ -0,0 +1,56 @@
using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Oqtane.Models;
namespace Oqtane.Repository
{
public interface IJobTaskRepository
{
IEnumerable<JobTask> GetJobTasks(int siteId);
JobTask GetJobTask(int jobTaskId);
JobTask AddJobTask(JobTask jobTask);
JobTask UpdateJobTask(JobTask jobTask);
void DeleteJobTask(int jobTaskId);
}
public class JobTaskRepository : IJobTaskRepository
{
private TenantDBContext _db;
public JobTaskRepository(TenantDBContext context)
{
_db = context;
}
public IEnumerable<JobTask> GetJobTasks(int siteId)
{
return _db.JobTask.Where(item => item.SiteId == siteId && !item.IsCompleted).OrderBy(item => item.CreatedOn);
}
public JobTask GetJobTask(int jobTaskId)
{
return _db.JobTask.SingleOrDefault(item => item.JobTaskId == jobTaskId);
}
public JobTask AddJobTask(JobTask jobTask)
{
_db.JobTask.Add(jobTask);
_db.SaveChanges();
return jobTask;
}
public JobTask UpdateJobTask(JobTask jobTask)
{
_db.Entry(jobTask).State = EntityState.Modified;
_db.SaveChanges();
return jobTask;
}
public void DeleteJobTask(int jobTaskId)
{
JobTask jobTask = _db.JobTask.Find(jobTaskId);
_db.JobTask.Remove(jobTask);
_db.SaveChanges();
}
}
}