using FastEndpoints; using GB5Shared.DTO.Framework.Login; using GB5Shared.DTO.Framework.ResponseStandard; using GB5Shared.FastEndPoint; using PayRollBLL.ReassignAttendanceDate; using static GB5Shared.GB5Constant.Constant; namespace PayRollSL.EndPoints.ReassignAttendanceDate { public class GetSelectListReassignAttendanceDate : BaseEndpoint> { private readonly IReassignAttendanceDateBLL _ReassignAttendanceDateBLL; public GetSelectListReassignAttendanceDate(IReassignAttendanceDateBLL ReassignAttendanceDateBLL) { _ReassignAttendanceDateBLL = ReassignAttendanceDateBLL; } public override void Configure() { Post("/ReassignAttendanceDate/GetSelectListReassignAttendanceDate"); AllowAnonymous(); } public record ReassignAttendanceDateParameters( [property: FromHeader] string Login, [property: QueryParam] int OuId, [property: QueryParam] int EmployeeId, [property: QueryParam] DateTime FromDate, [property: QueryParam] DateTime ToDate ); protected override async Task> ExecuteAsync(ReassignAttendanceDateParameters req, LoginDTO LoginDTO, CancellationToken ct) { try { var Result = await _ReassignAttendanceDateBLL.GetSelectListReassignAttendanceDate(req.OuId, req.EmployeeId, req.FromDate, req.ToDate, LoginDTO!); return await GB5Shared.ResponseStandard.Response.CreateSuccessResponse(Result, CacheKeyLevel.NOT_REQUIRED, LoginDTO); } catch (Exception ex) { return await GB5Shared.ResponseStandard.Response.CreateExceptionError(ex, CacheKeyLevel.NOT_REQUIRED, LoginDTO, ex.Message, 500); } } } }