diff --git a/Controllers/DisableController.cs b/Controllers/DisableController.cs index 24ddfc7..e9a8f54 100644 --- a/Controllers/DisableController.cs +++ b/Controllers/DisableController.cs @@ -2122,7 +2122,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers // --------------------------- dynamic header = null; int _count = await _context.Disables.Where(x => x.PeriodExam.Id == id).CountAsync(); - if (data.Count > 0) + if (_count > 0) { header = await _context.DisableScores .Include(x => x.ScoreImport) diff --git a/Services/CandidateService.cs b/Services/CandidateService.cs index 17ec119..63469ff 100644 --- a/Services/CandidateService.cs +++ b/Services/CandidateService.cs @@ -2207,18 +2207,24 @@ namespace BMA.EHR.Recurit.Exam.Service.Services if (candidate == null) throw new Exception(GlobalMessages.ExamNotFound); - if (candidate.PaymentImg != null) - { - await DeleteDocument(candidate.PaymentImg.Id.ToString()); - } + // เก็บ ID ของ Document เก่าไว้ก่อน + var oldDocumentId = candidate.PaymentImg?.Id.ToString(); + // Upload Document ใหม่ก่อน var doc = await _minioService.UploadFileAsync(file); var document = await _context.Documents.AsQueryable() .FirstOrDefaultAsync(x => x.Id == doc.Id); + // กำหนด Document ใหม่ให้กับ candidate candidate.PaymentImg = document; await _context.SaveChangesAsync(); + + // ลบ Document เก่าหลังจากที่ตัด reference แล้ว + if (oldDocumentId != null) + { + await DeleteDocument(oldDocumentId); + } } public async Task GetsAsyncCardCandidate(string examId, string positionId) diff --git a/Services/PeriodExamService.cs b/Services/PeriodExamService.cs index ecdea48..9ce92bb 100644 --- a/Services/PeriodExamService.cs +++ b/Services/PeriodExamService.cs @@ -763,12 +763,14 @@ namespace BMA.EHR.Recurit.Exam.Service.Services .OrderByDescending(d => d.CreatedAt) .Where(x => x.PeriodExam == periodExam && x.RegisterDate != null && x.Status != "register" && x.Status != "rejectRegister") .Where(x => - (x.PositionExam == null || x.PositionExam.PositionLevelName == null ? false : x.PositionExam.PositionLevelName.Contains(keyword)) || - (x.PositionExam == null || x.PositionExam.PositionName == null ? false : x.PositionExam.PositionName.Contains(keyword)) || + //(x.PositionExam == null || x.PositionExam.PositionLevelName == null ? false : x.PositionExam.PositionLevelName.Contains(keyword)) || + //(x.PositionExam == null || x.PositionExam.PositionName == null ? false : x.PositionExam.PositionName.Contains(keyword)) || + (x.PositionExam.PositionName + x.PositionExam.PositionLevelName).Contains(keyword) || (x.CitizenId == null ? false : x.CitizenId.Contains(keyword)) || - (x.PrefixName == null ? false : x.PrefixName.Contains(keyword)) || - (x.FirstName == null ? false : x.FirstName.Contains(keyword)) || - (x.LastName == null ? false : x.LastName.Contains(keyword)) || + //(x.PrefixName == null ? false : x.PrefixName.Contains(keyword)) || + //(x.FirstName == null ? false : x.FirstName.Contains(keyword)) || + //(x.LastName == null ? false : x.LastName.Contains(keyword)) || + (x.PrefixName + x.FirstName + " " + x.LastName).Contains(keyword) || (x.ExamIdenNumber == null ? false : x.ExamIdenNumber.Contains(keyword)) || (x.SeatNumber == null ? false : x.SeatNumber.Contains(keyword)) || (x.ResultA == null ? false : x.ResultA.Contains(keyword)) || @@ -804,12 +806,14 @@ namespace BMA.EHR.Recurit.Exam.Service.Services var _candidate = await _context.Candidates.AsQueryable() .Where(x => x.PeriodExam == periodExam && x.RegisterDate != null && x.Status != "register" && x.Status != "rejectRegister") .Where(x => - (x.PositionExam == null || x.PositionExam.PositionLevelName == null ? false : x.PositionExam.PositionLevelName.Contains(keyword)) || - (x.PositionExam == null || x.PositionExam.PositionName == null ? false : x.PositionExam.PositionName.Contains(keyword)) || + //(x.PositionExam == null || x.PositionExam.PositionLevelName == null ? false : x.PositionExam.PositionLevelName.Contains(keyword)) || + //(x.PositionExam == null || x.PositionExam.PositionName == null ? false : x.PositionExam.PositionName.Contains(keyword)) || + (x.PositionExam.PositionName + x.PositionExam.PositionLevelName).Contains(keyword) || (x.CitizenId == null ? false : x.CitizenId.Contains(keyword)) || - (x.PrefixName == null ? false : x.PrefixName.Contains(keyword)) || - (x.FirstName == null ? false : x.FirstName.Contains(keyword)) || - (x.LastName == null ? false : x.LastName.Contains(keyword)) || + //(x.PrefixName == null ? false : x.PrefixName.Contains(keyword)) || + //(x.FirstName == null ? false : x.FirstName.Contains(keyword)) || + //(x.LastName == null ? false : x.LastName.Contains(keyword)) || + (x.PrefixName + x.FirstName + " " + x.LastName).Contains(keyword) || (x.ExamIdenNumber == null ? false : x.ExamIdenNumber.Contains(keyword)) || (x.SeatNumber == null ? false : x.SeatNumber.Contains(keyword)) || (x.ResultA == null ? false : x.ResultA.Contains(keyword)) || @@ -838,12 +842,14 @@ namespace BMA.EHR.Recurit.Exam.Service.Services .OrderByDescending(d => d.CreatedAt) .Where(x => x.PeriodExam == periodExam && x.Status == status) .Where(x => - (x.PositionExam == null || x.PositionExam.PositionLevelName == null ? false : x.PositionExam.PositionLevelName.Contains(keyword)) || - (x.PositionExam == null || x.PositionExam.PositionName == null ? false : x.PositionExam.PositionName.Contains(keyword)) || + //(x.PositionExam == null || x.PositionExam.PositionLevelName == null ? false : x.PositionExam.PositionLevelName.Contains(keyword)) || + //(x.PositionExam == null || x.PositionExam.PositionName == null ? false : x.PositionExam.PositionName.Contains(keyword)) || + (x.PositionExam.PositionName + x.PositionExam.PositionLevelName).Contains(keyword) || (x.CitizenId == null ? false : x.CitizenId.Contains(keyword)) || - (x.PrefixName == null ? false : x.PrefixName.Contains(keyword)) || - (x.FirstName == null ? false : x.FirstName.Contains(keyword)) || - (x.LastName == null ? false : x.LastName.Contains(keyword)) || + //(x.PrefixName == null ? false : x.PrefixName.Contains(keyword)) || + //(x.FirstName == null ? false : x.FirstName.Contains(keyword)) || + //(x.LastName == null ? false : x.LastName.Contains(keyword)) || + (x.PrefixName + x.FirstName + " " + x.LastName).Contains(keyword) || (x.ExamIdenNumber == null ? false : x.ExamIdenNumber.Contains(keyword)) || (x.SeatNumber == null ? false : x.SeatNumber.Contains(keyword)) || (x.ResultA == null ? false : x.ResultA.Contains(keyword)) || @@ -879,12 +885,14 @@ namespace BMA.EHR.Recurit.Exam.Service.Services var _candidate = await _context.Candidates.AsQueryable() .Where(x => x.PeriodExam == periodExam && x.RegisterDate != null && x.Status != "register" && x.Status != "rejectRegister") .Where(x => - (x.PositionExam == null || x.PositionExam.PositionLevelName == null ? false : x.PositionExam.PositionLevelName.Contains(keyword)) || - (x.PositionExam == null || x.PositionExam.PositionName == null ? false : x.PositionExam.PositionName.Contains(keyword)) || + //(x.PositionExam == null || x.PositionExam.PositionLevelName == null ? false : x.PositionExam.PositionLevelName.Contains(keyword)) || + //(x.PositionExam == null || x.PositionExam.PositionName == null ? false : x.PositionExam.PositionName.Contains(keyword)) || + (x.PositionExam.PositionName + x.PositionExam.PositionLevelName).Contains(keyword) || (x.CitizenId == null ? false : x.CitizenId.Contains(keyword)) || - (x.PrefixName == null ? false : x.PrefixName.Contains(keyword)) || - (x.FirstName == null ? false : x.FirstName.Contains(keyword)) || - (x.LastName == null ? false : x.LastName.Contains(keyword)) || + //(x.PrefixName == null ? false : x.PrefixName.Contains(keyword)) || + //(x.FirstName == null ? false : x.FirstName.Contains(keyword)) || + //(x.LastName == null ? false : x.LastName.Contains(keyword)) || + (x.PrefixName + x.FirstName + " " + x.LastName).Contains(keyword) || (x.ExamIdenNumber == null ? false : x.ExamIdenNumber.Contains(keyword)) || (x.SeatNumber == null ? false : x.SeatNumber.Contains(keyword)) || (x.ResultA == null ? false : x.ResultA.Contains(keyword)) ||