using System.Collections.Generic; using LCU.Library.Internal.DispatcherModels.Enums; using LCU.Library.Internal.DispatcherModels.Models.Requests; using LCU.Library.Internal.DispatcherModels.Models.Results; namespace LCU.Api.Internal.Dispatcher.Services; public interface IJobService { Task> GetFilteredJobs(Filter filter); Task> GetAsync(); Task> GetInactiveAsync(); Task> GetInactiveExcludeSoftDeletedTrackedAsync(); Task> GetSoftDeletedTrackedAsync(DateTime cutOffDate); Task GetByIdAsync(int id); Task GetByIdExcludingWorkItemsAsync(int id); Task GetByWorkItemIdAsync(int workItemId); Task GetByWorkItemIdExcludingWorkItemsAsync(int workItemId); Task GetByWorkItemIdExcludingWorkItemsIncludeErrorRecipientsAsync(int workItemId); Task> GetJobsReadyToBeScheduled(); Task> GetErrorMonitoringJobs(); Task SaveAsync(Job job); Task CompleteJobAndWorkItem(Job job, WorkItemExecution currentWorkItemExecution, StatusType finalStatus); Task CompleteWorkItemAndContinueProcessingJob(Job job, WorkItemExecution currentWorkItemExecution, StatusType finalStatus); Task UpdateAsync(Job job); Task UpdateExcludingWorkItemsAsyncWithoutSave(Job job); Task RemoveSoftDeleteById(int id); Task RunJobNowAsync(Job job); Task RunJobNowByIdAsync(int id); Task DeactivateJobAsync(Job job); Task RescheduleJobAsync(Job job); Task DeleteAsync(int jobId); Task DeleteFromCleanupAsync(Job job); Task CopyJobAsync(CopyJobRequest request); }