using System; using System.Collections.Generic; using System.Threading.Tasks; using LCU.Library.Internal.DispatcherModels.Entities; using LCU.Library.Internal.DispatcherModels.Enums; using LCU.Library.Internal.DispatcherModels.Models; using LCU.Library.Internal.DispatcherModels.Models.Results; namespace LCU.Api.Internal.DispatcherLib.Repositories; public interface IJobRepository { Task> FilteredListAsync(Filter filter, int numberOfWorkItemExecutions, int numberOfExecutionMessages); Task> ListAsync(int numberOfWorkItemExecutions, int numberOfExecutionMessages); Task> ListInactiveAsync(int numberOfWorkItemExecutions, int numberOfExecutionMessages); Task> ListInactiveExcludeSoftDeletedTrackedAsync(int numberOfWorkItemExecutions, int numberOfExecutionMessages); Task> ListSoftDeletedTrackedAsync(int numberOfWorkItemExecutions, int numberOfExecutionMessages, DateTime cutOffDate); Task FindByIdAsync(int id, int numberOfWorkItemExecutions, int numberOfExecutionMessages); Task FindByIdExcludingWorkItemsAsync(int id); Task FindByWorkItemIdAsync(int workItemId, int numberOfWorkItemExecutions, int numberOfExecutionMessages); Task FindByWorkItemIdExcludingWorkItemsAsync(int workItemId); Task FindByWorkItemIdExcludingWorkItemsIncludeErrorRecipientsAsync(int workItemId); Task> FindJobsPastDateByStatuses(DateTime date, int numberOfWorkItemExecutions, int numberOfExecutionMessages, List jobStatuses); Task> FindJobsReadyToBeScheduled(DateTime date); Task AddAsync(Job job); Task Update(Job job); void Remove(Job job); }