From 6d62d357a68c70519749ca70d37857acdb34a856 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Wed, 10 Jan 2024 09:52:59 +0700 Subject: [PATCH] insert profile leave --- .../LeaveRequests/LeaveRequestRepository.cs | 42 +++++++++++++++++++ .../Repositories/UserProfileRepository.cs | 2 + 2 files changed, 44 insertions(+) diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs index 51a0b868..96f78bc8 100644 --- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs +++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs @@ -1,5 +1,6 @@ using BMA.EHR.Application.Common.Interfaces; using BMA.EHR.Application.Messaging; +using BMA.EHR.Domain.Models.HR; using BMA.EHR.Domain.Models.Leave.Commons; using BMA.EHR.Domain.Models.Leave.Requests; using BMA.EHR.Domain.Models.Notifications; @@ -297,6 +298,24 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests // TODO: remove วันลา + var leaveType = await _appDbContext.Set() + .FirstOrDefaultAsync(x => x.Name == rawData.Type.Name); + + + // insert to profile leave + var profileLeave = await _appDbContext.Set() + .Where(x => x.TypeLeave.Id == leaveType.Id) + .Where(x => x.DateStartLeave == rawData.LeaveStartDate && x.DateEndLeave == rawData.LeaveEndDate) + .FirstOrDefaultAsync(); + if (profileLeave != null) + { + _appDbContext.Set().Remove(profileLeave); + await _appDbContext.SaveChangesAsync(); + } + + // insert into process timestamp + + // Send Noti var noti = new Notification { @@ -382,6 +401,29 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests await UpdateAsync(rawData); + var leaveType = await _appDbContext.Set() + .FirstOrDefaultAsync(x => x.Name == rawData.Type.Name); + + + // insert to profile leave + var profileLeave = new ProfileLeave + { + DateStartLeave = rawData.LeaveStartDate, + DateEndLeave = rawData.LeaveEndDate, + + TotalLeave = rawData.LeaveTotal, + Status = "approve", + Reason = rawData.LeaveDetail, + + Profile = profile, + TypeLeave = leaveType + }; + _appDbContext.Set().Add(profileLeave); + await _appDbContext.SaveChangesAsync(); + + // insert to process timestamp + + // Send Noti var noti = new Notification { diff --git a/BMA.EHR.Application/Repositories/UserProfileRepository.cs b/BMA.EHR.Application/Repositories/UserProfileRepository.cs index 4ee80a18..e1d5fbe5 100644 --- a/BMA.EHR.Application/Repositories/UserProfileRepository.cs +++ b/BMA.EHR.Application/Repositories/UserProfileRepository.cs @@ -29,6 +29,8 @@ namespace BMA.EHR.Application.Repositories #region " Methods " + + public async Task GetProfileByKeycloakIdAsync(Guid keycloakId) { try