using FrameworkDAL.DTO.AutoScheduler; using GB5Shared.DTO.Framework.Login; using System.Threading; using System.Threading.Tasks; namespace FrameworkBLL.AutoScheduler { public interface IAutoSchedulerBLL { Task GetAutoScheduler(AutoSchedulerDTO AutoSchedulerDTO, LoginDTO LoginDTO); /// /// Create (dto.JobDefineId == 0) or update (dto.JobDefineId != 0) a job definition /// plus its MACTION and optional EventTypeAction rows in one transaction, then syncs /// the Quartz trigger. RunAs fields are written only on create (impersonation prevention). /// Task SaveAutoScheduler(AutoSchedulerDTO AutoSchedulerDTO, LoginDTO LoginDTO); /// Admin list (jobId = 0) or single-record fetch by jobId. Task GetJobDefineAsync(int jobId, LoginDTO login, CancellationToken ct); /// /// Removes Quartz trigger, then hard-deletes MACTION child rows and MJOBDEFINE row /// in a transaction. No-op (returns UpdateSuccess) when the job has no Quartz trigger. /// Task DeleteJobDefineAsync(int jobId, LoginDTO login, CancellationToken ct); } }