From 451806fd0094db7246eefe2f362d5f6c93263b2f Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sun, 30 Jun 2024 19:13:36 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A=20api=20?= =?UTF-8?q?=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88=E0=B8=A1=E0=B8=84=E0=B8=99?= =?UTF-8?q?=E0=B9=80=E0=B8=82=E0=B9=89=E0=B8=B2=E0=B8=84=E0=B8=B3=E0=B8=82?= =?UTF-8?q?=E0=B8=AD=E0=B9=80=E0=B8=84=E0=B8=A3=E0=B8=B7=E0=B8=AD=E0=B8=87?= =?UTF-8?q?=E0=B8=A3=E0=B8=B2=E0=B8=8A=20=E0=B9=80=E0=B8=9E=E0=B8=B4?= =?UTF-8?q?=E0=B9=88=E0=B8=A1=20ocId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/InsigniaRequestController.cs | 84 +++++++++++-------- .../Requests/AddUserRequestInsigniaRequest.cs | 2 + 2 files changed, 53 insertions(+), 33 deletions(-) diff --git a/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs index 29c380f7..a4b632d2 100644 --- a/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs +++ b/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs @@ -610,38 +610,51 @@ namespace BMA.EHR.Insignia.Service.Controllers /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน [HttpGet("{insigniaPeriodId:length(36)}")] - public async Task> UpdateInsignaiRequestBkk(Guid insigniaPeriodId) + public async Task> UpdateInsigniaRequestBkk(Guid insigniaPeriodId) { - //var organizationType = await _context.OrganizationTypes.Where(x => x.Name == "หน่วยงาน").FirstOrDefaultAsync(); - //if (organizationType == null) - // return Error(GlobalMessages.OrganizationNotFound); - //var organizations = await _context.Organizations.Where(x => x.OrganizationType == organizationType).ToListAsync(); - - var organizations = await _userProfileRepository.GetActiveRootAsync(AccessToken); - - foreach (var organization in organizations) + // jack add เพื่อให้ทำการรันแค่เขตพระนคร + // TODO : ต้องมาเอาบรรทัดนี้ออกในภายหลัง + var ocId = Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3"); + var result = await _repository.GetInsigniaRequest(insigniaPeriodId, ocId); + if (result != null) { - if (organization == null) - continue; - - // jack add เพื่อให้ทำการรันแค่เขตพระนคร - // TODO : ต้องมาเอาบรรทัดนี้ออกในภายหลัง - if(organization.Id != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) continue; - - var result = await _repository.GetInsigniaRequest(insigniaPeriodId, organization.Id); - if (result != null) + Guid period = result.PeriodId; + string requestStatus = result.RequestStatus; + var candidate = await _repository.GetInsigniaCandidateBKK(insigniaPeriodId, ocId); + // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new + if (requestStatus == null) { - Guid period = result.PeriodId; - string requestStatus = result.RequestStatus; - var candidate = await _repository.GetInsigniaCandidateBKK(insigniaPeriodId, organization.Id); - // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new - if (requestStatus == null) - { - // บันทึกรายชื่อ - await _repository.InsertCandidate(period, organization.Id, candidate); - } + // บันทึกรายชื่อ + await _repository.InsertCandidate(period, ocId, candidate); } } + + // TODO: original code use this in production + + //var organizations = await _userProfileRepository.GetActiveRootAsync(AccessToken); + + //foreach (var organization in organizations) + //{ + // if (organization == null) + // continue; + + + // if(organization.Id != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) continue; + + // var result = await _repository.GetInsigniaRequest(insigniaPeriodId, organization.Id); + // if (result != null) + // { + // Guid period = result.PeriodId; + // string requestStatus = result.RequestStatus; + // var candidate = await _repository.GetInsigniaCandidateBKK(insigniaPeriodId, organization.Id); + // // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new + // if (requestStatus == null) + // { + // // บันทึกรายชื่อ + // await _repository.InsertCandidate(period, organization.Id, candidate); + // } + // } + //} return Success(); } @@ -1069,9 +1082,14 @@ namespace BMA.EHR.Insignia.Service.Controllers if (profile == null) return Error(GlobalMessages.DataNotFound); var insignia = await _context.Insignias.FirstOrDefaultAsync(x => x.Id == req.insigniaId); + if (insignia == null) return Error(GlobalMessages.InsigniaNotFound); - var insigniaRequestProfile = await _context.InsigniaRequestProfiles.FirstOrDefaultAsync(x => x.ProfileId == profile.Id && x.Request.Period == insigniaPeriod); + + var insigniaRequestProfile = await _context.InsigniaRequestProfiles + .Include(x => x.Request) + .ThenInclude(x => x.Period) + .FirstOrDefaultAsync(x => x.ProfileId == profile.Id && x.Request.Period.Id == insigniaPeriod.Id); if (insigniaRequestProfile != null) return Error(GlobalMessages.InsigniaRequestProfileDupicate); @@ -1086,7 +1104,7 @@ namespace BMA.EHR.Insignia.Service.Controllers // .FirstOrDefaultAsync(); //var _org = await _context.Organizations // .FirstOrDefaultAsync(x => x.Id == _orgProfile); - var insigniaRequest = await _context.InsigniaRequests.FirstOrDefaultAsync(x => x.Period == insigniaPeriod && x.OrganizationId == insigniaRequestProfile!.Request.OrganizationId); + var insigniaRequest = await _context.InsigniaRequests.Include(x => x.Period).FirstOrDefaultAsync(x => x.Period.Id == insigniaPeriod.Id && x.OrganizationId == req.OcId); if (insigniaRequest == null) { //var orgProfile = await _context.ProfilePositions @@ -1101,14 +1119,14 @@ namespace BMA.EHR.Insignia.Service.Controllers //var org = await _context.Organizations // .FirstOrDefaultAsync(x => x.Id == orgProfile); - var org = _userProfileRepository.GetOc(insigniaRequestProfile!.Request.OrganizationId, 0, AccessToken); + //var org = _userProfileRepository.GetOc(insigniaRequestProfile!.Request.OrganizationId, 0, AccessToken); - if (org == null) - return Error(GlobalMessages.OrganizationNotFound); + //if (org == null) + // return Error(GlobalMessages.OrganizationNotFound); insigniaRequest = new InsigniaRequest { Period = insigniaPeriod, - OrganizationId = org!.RootId.Value, + OrganizationId = req.OcId, RequestStatus = "st1", RequestNote = "", CreatedFullName = FullName ?? "System Administrator", diff --git a/BMA.EHR.Insignia.Service/Requests/AddUserRequestInsigniaRequest.cs b/BMA.EHR.Insignia.Service/Requests/AddUserRequestInsigniaRequest.cs index 3de8842c..b973fbb4 100644 --- a/BMA.EHR.Insignia.Service/Requests/AddUserRequestInsigniaRequest.cs +++ b/BMA.EHR.Insignia.Service/Requests/AddUserRequestInsigniaRequest.cs @@ -9,5 +9,7 @@ namespace BMA.EHR.Insignia.Service.Requests public Guid insigniaId { get; set; } public Guid insigniaPeriodId { get; set; } public string? Reason { get; set; } + + public Guid OcId { get; set; } } } \ No newline at end of file