using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using TMSDAL.DTO.TrainingNeed; namespace TMSBLL.TrainingNeed { public interface ITrainingNeedBLL { Task GetTrainingNeed(int trainingNeedId, LoginDTO loginDTO); Task GetTrainingNeedList(byte? needStatus, int? domainId, byte? priority, byte? sourceType, int page, int size, LoginDTO loginDTO); Task SaveTrainingNeed(TrainingNeedDTO dto, LoginDTO loginDTO); Task GetSelectList(CriteriaDTO criteriaDTO, LoginDTO login, CancellationToken ct); Task DeleteTrainingNeed(int trainingNeedId, LoginDTO loginDTO); Task SubmitTrainingNeed(SubmitTrainingNeedDTO dto, LoginDTO loginDTO); /// /// Generalized, non-interactive entry point for any producer module to raise a Training /// Need programmatically (as opposed to SaveTrainingNeed, which is UI-form shaped and /// requires a human RaisedById). Idempotent: repeated calls for the same /// (SourceRefEntity, SourceRefId, NeedSourceType) return the existing open need's ID /// rather than creating a duplicate. Returns the TrainingNeedId (existing or newly created). /// Task ProposeTrainingNeed(ProposeTrainingNeedDTO dto, LoginDTO loginDTO, CancellationToken ct); } }