change JobTask to SiteTask

This commit is contained in:
sbwalker
2026-02-19 10:47:30 -05:00
parent 0fd97d34d9
commit 060eaa7aff
19 changed files with 197 additions and 160 deletions

View File

@@ -136,6 +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; }
public virtual DbSet<SiteTask> SiteTask { get; set; }
}
}

View File

@@ -1,56 +0,0 @@
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();
}
}
}

View File

@@ -0,0 +1,82 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.EntityFrameworkCore;
using Oqtane.Models;
namespace Oqtane.Repository
{
public interface ISiteTaskRepository
{
IEnumerable<SiteTask> GetSiteTasks(int siteId);
SiteTask GetSiteTask(int siteTaskId);
SiteTask AddSiteTask(SiteTask siteTask);
SiteTask UpdateSiteTask(SiteTask siteTask);
void DeleteSiteTask(int siteTaskId);
int DeleteSiteTasks(int siteId, int age);
}
public class SiteTaskRepository : ISiteTaskRepository
{
private readonly IDbContextFactory<TenantDBContext> _dbContextFactory;
public SiteTaskRepository(IDbContextFactory<TenantDBContext> dbContextFactory)
{
_dbContextFactory = dbContextFactory;
}
public IEnumerable<SiteTask> GetSiteTasks(int siteId)
{
using var db = _dbContextFactory.CreateDbContext();
return db.SiteTask.Where(item => item.SiteId == siteId && !item.IsCompleted).OrderBy(item => item.CreatedOn);
}
public SiteTask GetSiteTask(int siteTaskId)
{
using var db = _dbContextFactory.CreateDbContext();
return db.SiteTask.SingleOrDefault(item => item.SiteTaskId == siteTaskId);
}
public SiteTask AddSiteTask(SiteTask siteTask)
{
using var db = _dbContextFactory.CreateDbContext();
db.SiteTask.Add(siteTask);
db.SaveChanges();
return siteTask;
}
public SiteTask UpdateSiteTask(SiteTask siteTask)
{
using var db = _dbContextFactory.CreateDbContext();
db.Entry(siteTask).State = EntityState.Modified;
db.SaveChanges();
return siteTask;
}
public void DeleteSiteTask(int siteTaskId)
{
using var db = _dbContextFactory.CreateDbContext();
SiteTask siteTask = db.SiteTask.Find(siteTaskId);
db.SiteTask.Remove(siteTask);
db.SaveChanges();
}
public int DeleteSiteTasks(int siteId, int age)
{
using var db = _dbContextFactory.CreateDbContext();
// delete completed tasks in batches of 100 records
var count = 0;
var purgedate = DateTime.UtcNow.AddDays(-age);
var tasks = db.SiteTask.Where(item => item.SiteId == siteId && item.IsCompleted && item.CreatedOn < purgedate)
.OrderBy(item => item.CreatedOn).Take(100).ToList();
while (tasks.Count > 0)
{
count += tasks.Count;
db.SiteTask.RemoveRange(tasks);
db.SaveChanges();
tasks = db.SiteTask.Where(item => item.SiteId == siteId && item.IsCompleted && item.CreatedOn < purgedate)
.OrderBy(item => item.CreatedOn).Take(100).ToList();
}
return count;
}
}
}