diff --git a/.github/workflows/release_leave.yaml b/.github/workflows/release_leave.yaml
index c24b66e8..d0a6905e 100644
--- a/.github/workflows/release_leave.yaml
+++ b/.github/workflows/release_leave.yaml
@@ -1,89 +1,89 @@
name: release-dev
run-name: release-dev ${{ github.actor }}
on:
- # push:
- # tags:
- # - 'v[0-9]+.[0-9]+.[0-9]+'
- # tags-ignore:
- # - '2.*'
- # Allow run workflow manually from Action tab
- workflow_dispatch:
+ # push:
+ # tags:
+ # - 'v[0-9]+.[0-9]+.[0-9]+'
+ # tags-ignore:
+ # - '2.*'
+ # Allow run workflow manually from Action tab
+ workflow_dispatch:
env:
- REGISTRY: docker.frappet.com
- IMAGE_NAME: ehr/bma-ehr-leave-service
- DEPLOY_HOST: frappet.com
- DEPLOY_PORT: 10102
- # COMPOSE_PATH: /home/frappet/docker/bma-ehr
- COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-leave
- TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0
+ REGISTRY: docker.frappet.com
+ IMAGE_NAME: ehr/bma-ehr-leave-service
+ DEPLOY_HOST: frappet.com
+ DEPLOY_PORT: 10102
+ # COMPOSE_PATH: /home/frappet/docker/bma-ehr
+ COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-leave
+ TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0
jobs:
- # act workflow_dispatch -W .github/workflows/release_leave.yaml --input IMAGE_VER=leave-1.0.0 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
- release-dev:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v3
- # skip Set up QEMU because it fail on act and container
- - name: Gen Version
- id: gen_ver
- run: |
- if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
- IMAGE_VER='${GITHUB_REF/refs\/tags\//}'
- else
- IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
- fi
- if [[ $IMAGE_VER == '' ]]; then
- IMAGE_VER='test-vBeta'
- fi
- echo '::set-output name=image_ver::'$IMAGE_VER
- - name: Test Version
- run: |
- echo $GITHUB_REF
- echo ${{ steps.gen_ver.outputs.image_ver }}
- - name: Set up Docker Buildx
- uses: docker/setup-buildx-action@v2
- - name: Login in to registry
- uses: docker/login-action@v2
- with:
- registry: ${{env.REGISTRY}}
- username: ${{secrets.DOCKER_USER}}
- password: ${{secrets.DOCKER_PASS}}
- - name: Build and load local docker image
- uses: docker/build-push-action@v3
- with:
- context: .
- platforms: linux/amd64
- file: BMA.EHR.Leave.Service/Dockerfile
- push: true
- tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
+ # act workflow_dispatch -W .github/workflows/release_leave.yaml --input IMAGE_VER=leave-1.0.0 -s DOCKER_USER=sorawit -s DOCKER_PASS=P@ssword -s SSH_PASSWORD=P@ssw0rd
+ release-dev:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+ # skip Set up QEMU because it fail on act and container
+ - name: Gen Version
+ id: gen_ver
+ run: |
+ if [[ $GITHUB_REF == 'refs/tags/'* ]]; then
+ IMAGE_VER='${GITHUB_REF/refs\/tags\//}'
+ else
+ IMAGE_VER=${{ github.event.inputs.IMAGE_VER }}
+ fi
+ if [[ $IMAGE_VER == '' ]]; then
+ IMAGE_VER='test-vBeta'
+ fi
+ echo '::set-output name=image_ver::'$IMAGE_VER
+ - name: Test Version
+ run: |
+ echo $GITHUB_REF
+ echo ${{ steps.gen_ver.outputs.image_ver }}
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v2
+ - name: Login in to registry
+ uses: docker/login-action@v2
+ with:
+ registry: ${{env.REGISTRY}}
+ username: ${{secrets.DOCKER_USER}}
+ password: ${{secrets.DOCKER_PASS}}
+ - name: Build and load local docker image
+ uses: docker/build-push-action@v3
+ with:
+ context: .
+ platforms: linux/amd64
+ file: BMA.EHR.Leave/Dockerfile
+ push: true
+ tags: ${{env.REGISTRY}}/${{env.IMAGE_NAME}}:${{ steps.gen_ver.outputs.image_ver }},${{env.REGISTRY}}/${{env.IMAGE_NAME}}:latest
- - name: Reload docker compose
- uses: appleboy/ssh-action@v0.1.8
- with:
- host: ${{env.DEPLOY_HOST}}
- username: frappet
- password: ${{ secrets.SSH_PASSWORD }}
- port: ${{env.DEPLOY_PORT}}
- script: |
- cd "${{env.COMPOSE_PATH}}"
- docker compose pull
- docker compose up -d
- echo "${{ steps.gen_ver.outputs.image_ver }}"> success
- - uses: snow-actions/line-notify@v1.1.0
- if: success()
- with:
- access_token: ${{ env.TOKEN_LINE }}
- message: |
- -Success✅✅✅
- Image: ${{env.IMAGE_NAME}}
- Version: ${{ github.event.inputs.IMAGE_VER }}
- By: ${{secrets.DOCKER_USER}}
- - uses: snow-actions/line-notify@v1.1.0
- if: failure()
- with:
- access_token: ${{ env.TOKEN_LINE }}
- message: |
- -Failure❌❌❌
- Image: ${{env.IMAGE_NAME}}
- Version: ${{ github.event.inputs.IMAGE_VER }}
- By: ${{secrets.DOCKER_USER}}
+ - name: Reload docker compose
+ uses: appleboy/ssh-action@v0.1.8
+ with:
+ host: ${{env.DEPLOY_HOST}}
+ username: frappet
+ password: ${{ secrets.SSH_PASSWORD }}
+ port: ${{env.DEPLOY_PORT}}
+ script: |
+ cd "${{env.COMPOSE_PATH}}"
+ docker compose pull
+ docker compose up -d
+ echo "${{ steps.gen_ver.outputs.image_ver }}"> success
+ - uses: snow-actions/line-notify@v1.1.0
+ if: success()
+ with:
+ access_token: ${{ env.TOKEN_LINE }}
+ message: |
+ -Success✅✅✅
+ Image: ${{env.IMAGE_NAME}}
+ Version: ${{ github.event.inputs.IMAGE_VER }}
+ By: ${{secrets.DOCKER_USER}}
+ - uses: snow-actions/line-notify@v1.1.0
+ if: failure()
+ with:
+ access_token: ${{ env.TOKEN_LINE }}
+ message: |
+ -Failure❌❌❌
+ Image: ${{env.IMAGE_NAME}}
+ Version: ${{ github.event.inputs.IMAGE_VER }}
+ By: ${{secrets.DOCKER_USER}}
diff --git a/.idea/.idea.BMA.EHR.Solution/.idea/.gitignore b/.idea/.idea.BMA.EHR.Solution/.idea/.gitignore
deleted file mode 100644
index 162f34a6..00000000
--- a/.idea/.idea.BMA.EHR.Solution/.idea/.gitignore
+++ /dev/null
@@ -1,13 +0,0 @@
-# Default ignored files
-/shelf/
-/workspace.xml
-# Rider ignored files
-/contentModel.xml
-/.idea.BMA.EHR.Solution.iml
-/modules.xml
-/projectSettingsUpdater.xml
-# Editor-based HTTP Client requests
-/httpRequests/
-# Datasource local storage ignored files
-/dataSources/
-/dataSources.local.xml
diff --git a/.idea/.idea.BMA.EHR.Solution/.idea/.name b/.idea/.idea.BMA.EHR.Solution/.idea/.name
deleted file mode 100644
index 888d8763..00000000
--- a/.idea/.idea.BMA.EHR.Solution/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-BMA.EHR.Solution
\ No newline at end of file
diff --git a/.idea/.idea.BMA.EHR.Solution/.idea/encodings.xml b/.idea/.idea.BMA.EHR.Solution/.idea/encodings.xml
deleted file mode 100644
index df87cf95..00000000
--- a/.idea/.idea.BMA.EHR.Solution/.idea/encodings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.BMA.EHR.Solution/.idea/indexLayout.xml b/.idea/.idea.BMA.EHR.Solution/.idea/indexLayout.xml
deleted file mode 100644
index 7b08163c..00000000
--- a/.idea/.idea.BMA.EHR.Solution/.idea/indexLayout.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/.idea.BMA.EHR.Solution/.idea/vcs.xml b/.idea/.idea.BMA.EHR.Solution/.idea/vcs.xml
deleted file mode 100644
index 35eb1ddf..00000000
--- a/.idea/.idea.BMA.EHR.Solution/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs
index 1698ce7c..1868516a 100644
--- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs
+++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveRequestRepository.cs
@@ -113,10 +113,10 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
if (entity.Type != null)
{
-
+
_dbContext.Attatch(entity.Type);
}
-
+
return await base.UpdateAsync(entity);
}
@@ -126,7 +126,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task> GetLeaveRequestByYearAsync(int year)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.LeaveStartDate.Year == year)
.Where(x => x.LeaveStatus != "REJECT" && x.LeaveStatus != "DELETE")
@@ -137,7 +137,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task> GetLeaveRequestByUserIdAsync(Guid keycloakUserId, int year, Guid type, string status)
{
- var rawData = _dbContext.Set().AsQueryable()
+ var rawData = _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId);
@@ -155,7 +155,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task> GetLeaveRequestForAdminAsync(int year, Guid type, string status, DateTime startDate, DateTime endDate)
{
- var rawData = _dbContext.Set()
+ var rawData = _dbContext.Set().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.LeaveStatus != "DRAFT")
.AsQueryable();
@@ -182,14 +182,15 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetRestDayTotalByYearForUserAsync(Guid keycloakUserId, int year)
{
- var leaveType = await _dbContext.Set().AsQueryable().FirstOrDefaultAsync(l => l.Code.Trim().ToUpper() == "LV-005");
+ var leaveType = await _dbContext.Set().AsQueryable().AsNoTracking()
+ .FirstOrDefaultAsync(l => l.Code.Trim().ToUpper() == "LV-005");
if (leaveType == null)
{
throw new Exception("ไม่พบข้อมูลประเภทการลาพักผ่อน โปรดติดต่อผู้ดูและระบบ");
}
- var data = _dbContext.Set().AsQueryable()
+ var data = _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveType.Id)
@@ -201,7 +202,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetSumLeaveByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId, int year)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveTypeId)
@@ -214,7 +215,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetLeaveLastByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveTypeId)
@@ -228,7 +229,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetLastLeaveRequestByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveTypeId)
@@ -241,7 +242,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task> GetCancelLeaveRequestForAdminAsync(int year, Guid type, string status)
{
- var rawData = _dbContext.Set()
+ var rawData = _dbContext.Set().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.LeaveStatus == "DELETE")
.AsQueryable();
@@ -517,7 +518,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task> GetSumSendLeaveAsync(int year)
{
var data = await _dbContext.Set().AsQueryable().AsNoTracking()
- .Include(x => x.Type)
+ .Include(x => x.Type)
.Where(x => x.LeaveStartDate.Year == year)
.ToListAsync();
@@ -603,7 +604,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetSumSendLeaveByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId, int year)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveTypeId)
@@ -615,7 +616,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetSumApproveLeaveByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId, int year)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveTypeId)
@@ -631,7 +632,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetSumApproveLeaveByRangeForUser(Guid keycloakUserId, DateTime startDate, DateTime endDate)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.LeaveStartDate.Date >= startDate.Date && x.LeaveStartDate.Date <= endDate.Date)
@@ -688,7 +689,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetSumApproveLeaveByTypeAndRangeForUser(Guid keycloakUserId, Guid leaveTypeId, DateTime startDate, DateTime endDate)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveTypeId)
@@ -704,7 +705,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetCountApproveLeaveByTypeAndRangeForUser(Guid keycloakUserId, Guid leaveTypeId, DateTime startDate, DateTime endDate)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveTypeId)
@@ -717,7 +718,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetSumRejectLeaveByTypeForUserAsync(Guid keycloakUserId, Guid leaveTypeId, int year)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.Type.Id == leaveTypeId)
@@ -752,7 +753,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
var leaveStatus = new List() { "NEW", "PENDING", "APPROVE" };
if (range == "ALL")
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
//.Where(x => x.LeaveRange == "ALL")
.Where(x => x.KeycloakUserId == keycloakUserId)
@@ -764,7 +765,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
}
else
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.LeaveRange == range)
.Where(x => x.KeycloakUserId == keycloakUserId)
@@ -791,7 +792,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetLeavePeriodAsync(Guid keycloakUserId, DateTime date)
{
- var data = await _dbContext.Set().AsQueryable()
+ var data = await _dbContext.Set().AsQueryable().AsNoTracking()
.Include(x => x.Type)
.Where(x => x.KeycloakUserId == keycloakUserId)
.Where(x => x.LeaveStatus == "APPROVE")
diff --git a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveTypeRepository.cs b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveTypeRepository.cs
index 65a43b25..0a7120f4 100644
--- a/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveTypeRepository.cs
+++ b/BMA.EHR.Application/Repositories/Leaves/LeaveRequests/LeaveTypeRepository.cs
@@ -57,7 +57,7 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
public async Task GetLeaveTypeByCodeAsync(string code)
{
- return await _dbContext.Set().FirstOrDefaultAsync(x => x.Code == code);
+ return await _dbContext.Set().AsNoTracking().FirstOrDefaultAsync(x => x.Code == code);
}
}
diff --git a/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs
index 71a53a03..cac03fd7 100644
--- a/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs
+++ b/BMA.EHR.Application/Responses/Profiles/GetProfileByKeycloakIdDto.cs
@@ -39,6 +39,8 @@ namespace BMA.EHR.Application.Responses.Profiles
public string? Gender { get; set; }
+ public string? ProfileType { get; set; }
+
}
public class PosLevel
@@ -89,9 +91,11 @@ namespace BMA.EHR.Application.Responses.Profiles
public string PositionLevel { get; set; } = string.Empty;
- public string PositionType { get; set; } = string.Empty;
+ public string PositionType { get; set; } = string.Empty;
public string Position { get; set; } = string.Empty;
+
+
}
public class ProfileInsignia
diff --git a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs
index 4246f398..7ee7cbfd 100644
--- a/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs
+++ b/BMA.EHR.Insignia/Controllers/InsigniaRequestController.cs
@@ -1041,10 +1041,13 @@ namespace BMA.EHR.Insignia.Service.Controllers
//var profile = await _context.Profiles.Include(x => x.Salaries).FirstOrDefaultAsync(x => x.Id == req.ProfileId);
- var profile = _userProfileRepository.GetOfficerProfileById(req.ProfileId, AccessToken);
+ var profileTest = _userProfileRepository.GetOfficerProfileById(req.ProfileId, AccessToken);
- if (profile == null)
+ if (profileTest == null)
return Error(GlobalMessages.DataNotFound);
+
+ var profile = await _userProfileRepository.GetProfileByKeycloakIdAsync(profileTest.Keycloak ?? Guid.Empty, AccessToken ?? "");
+
var insignia = await _context.Insignias.FirstOrDefaultAsync(x => x.Id == req.insigniaId);
if (insignia == null)
@@ -1103,6 +1106,15 @@ namespace BMA.EHR.Insignia.Service.Controllers
}
+ var lastInsignia = string.Empty;
+ if (profile.ProfileInsignia != null)
+ {
+ var id = profile.ProfileInsignia.Id ?? Guid.Empty;
+ var insigniaEnt = _insigniaPeriodRepository.GetInsigniaById(id);
+ if (insigniaEnt != null)
+ lastInsignia = insigniaEnt.Name;
+ }
+
await _context.AddAsync(new InsigniaRequestProfile
{
Status = "PENDING",
@@ -1112,14 +1124,30 @@ namespace BMA.EHR.Insignia.Service.Controllers
Reason = req.Reason,
RequestDate = DateTime.Now,
MatchingConditions = System.Text.Json.JsonSerializer.Serialize(new List()), // serialize to string
- Salary = profile.ProfileSalary == null || profile.ProfileSalary.Count == 0 ? 0 :
- profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, //profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
+ Salary = profile.ProfileSalary == null ? 0 : profile.ProfileSalary.Amount, //profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount,
CreatedFullName = FullName ?? "System Administrator",
CreatedUserId = UserId ?? "",
CreatedAt = DateTime.Now,
LastUpdateFullName = FullName ?? "System Administrator",
LastUpdateUserId = UserId ?? "",
LastUpdatedAt = DateTime.Now,
+
+ // Add Information for reused in API Call
+ ProfileType = "officer",
+ Prefix = profile.Prefix,
+ FirstName = profile.FirstName,
+ LastName = profile.LastName,
+ CitizenId = profile.CitizenId,
+ BirthDate = profile.BirthDate,
+ DateAppoint = profile.DateAppoint,
+ Position = profile.Position,
+ Gender = profile.Gender,
+ PosTypeName = profile.PosType!.PosTypeName,
+ PosLevelName = profile.PosLevel!.PosLevelName,
+ PosNo = profile.ProfileSalary == null ? "" : profile.ProfileSalary.PosNo,
+ Amount = profile.ProfileSalary == null ? 0 : profile.ProfileSalary.Amount,
+ PositionSalaryAmount = profile.ProfileSalary == null ? 0 : profile.ProfileSalary.PositionSalaryAmount,
+ LastInsigniaName = lastInsignia
});
await _context.SaveChangesAsync();
diff --git a/BMA.EHR.Leave.Service/BMA.EHR.Leave.Service.csproj b/BMA.EHR.Leave/BMA.EHR.Leave.csproj
similarity index 98%
rename from BMA.EHR.Leave.Service/BMA.EHR.Leave.Service.csproj
rename to BMA.EHR.Leave/BMA.EHR.Leave.csproj
index ca624d56..c462d37a 100644
--- a/BMA.EHR.Leave.Service/BMA.EHR.Leave.Service.csproj
+++ b/BMA.EHR.Leave/BMA.EHR.Leave.csproj
@@ -9,6 +9,7 @@
True
.
BMA.EHR.Leave.Service
+ BMA.EHR.Leave
$(NoWarn);1591
diff --git a/BMA.EHR.Leave.Service/ConfigureSwaggerOptions.cs b/BMA.EHR.Leave/ConfigureSwaggerOptions.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/ConfigureSwaggerOptions.cs
rename to BMA.EHR.Leave/ConfigureSwaggerOptions.cs
diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs b/BMA.EHR.Leave/Controllers/LeaveController.cs
similarity index 94%
rename from BMA.EHR.Leave.Service/Controllers/LeaveController.cs
rename to BMA.EHR.Leave/Controllers/LeaveController.cs
index 62c53709..6c08b893 100644
--- a/BMA.EHR.Leave.Service/Controllers/LeaveController.cs
+++ b/BMA.EHR.Leave/Controllers/LeaveController.cs
@@ -869,18 +869,24 @@ namespace BMA.EHR.Leave.Service.Controllers
//var count = await _processUserTimeStampRepository.GetTimeStampHistoryForAdminCountAsync(startDate, endDate);
var imgUrl = $"{_configuration["MinIO:Endpoint"]}{_configuration["MinIO:BucketName"]}";
- var data = (await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate))
- .Select(d => new CheckInProcessHistoryForAdminDto
- {
- Id = d.Id,
- FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken),
- CheckInDate = d.CheckIn.Date,
- CheckInTime = d.CheckIn.ToString("HH:mm"),
- CheckInLocation = d.CheckInPOI,
- CheckInLat = d.CheckInLat,
- CheckInLon = d.CheckInLon,
- CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus :
+ var resultData = await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate);
+ var data = new List();
+
+ foreach (var d in resultData)
+ {
+ var pf = await _userProfileRepository.GetProfileByKeycloakIdAsync(d.KeycloakUserId, AccessToken);
+ if (pf == null) continue;
+ data.Add(new CheckInProcessHistoryForAdminDto
+ {
+ Id = d.Id,
+ FullName = $"{pf.Prefix}{pf.FirstName} {pf.LastName}",
+ CheckInDate = d.CheckIn.Date,
+ CheckInTime = d.CheckIn.ToString("HH:mm"),
+ CheckInLocation = d.CheckInPOI,
+ CheckInLat = d.CheckInLat,
+ CheckInLon = d.CheckInLon,
+ CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus :
DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) >
DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}") ?
@@ -891,16 +897,16 @@ namespace BMA.EHR.Leave.Service.Controllers
"NORMAL",
- CheckInIsLocation = d.IsLocationCheckIn,
- CheckInLocationName = d.CheckInLocationName,
- //CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}",
+ CheckInIsLocation = d.IsLocationCheckIn,
+ CheckInLocationName = d.CheckInLocationName,
+ //CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}",
- CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date,
- CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"),
- CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI,
- CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat,
- CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon,
- CheckOutStatus = d.CheckOutStatus != "" ? d.CheckOutStatus :
+ CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date,
+ CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"),
+ CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI,
+ CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat,
+ CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon,
+ CheckOutStatus = d.CheckOutStatus != "" ? d.CheckOutStatus :
d.CheckOut == null ? null : DateTime.Parse(d.CheckOut.Value.ToString("yyyy-MM-dd HH:mm")) <
DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}") ?
"ABSENT" :
@@ -908,12 +914,58 @@ namespace BMA.EHR.Leave.Service.Controllers
DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ?
"ABSENT" :
"NORMAL",
- CheckOutIsLocation = d.IsLocationCheckOut,
- CheckOutLocationName = d.CheckOutLocationName
- //CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}",
- })
+ CheckOutIsLocation = d.IsLocationCheckOut,
+ CheckOutLocationName = d.CheckOutLocationName
+ //CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}",
+ });
+ }
- .ToList();
+
+ // var data = (await _processUserTimeStampRepository.GetTimeStampHistoryForAdminAsync(startDate, endDate))
+ // .Select(d => new CheckInProcessHistoryForAdminDto
+ // {
+ // Id = d.Id,
+ // FullName = _userProfileRepository.GetUserFullName(d.KeycloakUserId, AccessToken),
+
+ // CheckInDate = d.CheckIn.Date,
+ // CheckInTime = d.CheckIn.ToString("HH:mm"),
+ // CheckInLocation = d.CheckInPOI,
+ // CheckInLat = d.CheckInLat,
+ // CheckInLon = d.CheckInLon,
+ // CheckInStatus = d.CheckInStatus != "" ? d.CheckInStatus :
+ // DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) >
+ // DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.StartTimeMorning}") ?
+
+ // DateTime.Parse(d.CheckIn.ToString("yyyy-MM-dd HH:mm")) >
+ // DateTime.Parse($"{d.CheckIn.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ?
+ // "ABSENT" :
+ // "LATE" :
+
+
+ // "NORMAL",
+ // CheckInIsLocation = d.IsLocationCheckIn,
+ // CheckInLocationName = d.CheckInLocationName,
+ // //CheckInImageUrl = $"{imgUrl}/{d.CheckInImageUrl}",
+
+ // CheckOutDate = d.CheckOut == null ? null : d.CheckOut.Value.Date,
+ // CheckOutTime = d.CheckOut == null ? "" : d.CheckOut.Value.ToString("HH:mm"),
+ // CheckOutLocation = d.CheckOut == null ? "" : d.CheckOutPOI,
+ // CheckOutLat = d.CheckOut == null ? null : d.CheckOutLat,
+ // CheckOutLon = d.CheckOut == null ? null : d.CheckOutLon,
+ // CheckOutStatus = d.CheckOutStatus != "" ? d.CheckOutStatus :
+ // d.CheckOut == null ? null : DateTime.Parse(d.CheckOut.Value.ToString("yyyy-MM-dd HH:mm")) <
+ // DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeAfternoon}") ?
+ // "ABSENT" :
+ // DateTime.Parse(d.CheckOut.Value.ToString("yyyy-MM-dd HH:mm")) <
+ // DateTime.Parse($"{d.CheckIn.Date.ToString("yyyy-MM-dd")} {duty.EndTimeMorning}") ?
+ // "ABSENT" :
+ // "NORMAL",
+ // CheckOutIsLocation = d.IsLocationCheckOut,
+ // CheckOutLocationName = d.CheckOutLocationName
+ // //CheckOutImageUrl = d.CheckOut == null ? "" : $"{imgUrl}/{d.CheckOutImageUrl}",
+ // })
+
+ // .ToList();
if (keyword != "")
{
diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveReportController.cs b/BMA.EHR.Leave/Controllers/LeaveReportController.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/Controllers/LeaveReportController.cs
rename to BMA.EHR.Leave/Controllers/LeaveReportController.cs
diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs b/BMA.EHR.Leave/Controllers/LeaveRequestController.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/Controllers/LeaveRequestController.cs
rename to BMA.EHR.Leave/Controllers/LeaveRequestController.cs
diff --git a/BMA.EHR.Leave.Service/Controllers/LeaveTypeController.cs b/BMA.EHR.Leave/Controllers/LeaveTypeController.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/Controllers/LeaveTypeController.cs
rename to BMA.EHR.Leave/Controllers/LeaveTypeController.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/ApproveRequestDto.cs b/BMA.EHR.Leave/DTOs/AdditionalCheck/ApproveRequestDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/AdditionalCheck/ApproveRequestDto.cs
rename to BMA.EHR.Leave/DTOs/AdditionalCheck/ApproveRequestDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/CreateAdditionalCheckRequestDto.cs b/BMA.EHR.Leave/DTOs/AdditionalCheck/CreateAdditionalCheckRequestDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/AdditionalCheck/CreateAdditionalCheckRequestDto.cs
rename to BMA.EHR.Leave/DTOs/AdditionalCheck/CreateAdditionalCheckRequestDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/GetAdditionalCheckRequestDto.cs b/BMA.EHR.Leave/DTOs/AdditionalCheck/GetAdditionalCheckRequestDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/AdditionalCheck/GetAdditionalCheckRequestDto.cs
rename to BMA.EHR.Leave/DTOs/AdditionalCheck/GetAdditionalCheckRequestDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/GetAdditionalCheckRequestHistoryDto.cs b/BMA.EHR.Leave/DTOs/AdditionalCheck/GetAdditionalCheckRequestHistoryDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/AdditionalCheck/GetAdditionalCheckRequestHistoryDto.cs
rename to BMA.EHR.Leave/DTOs/AdditionalCheck/GetAdditionalCheckRequestHistoryDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/AdditionalCheck/RejectRequestDto.cs b/BMA.EHR.Leave/DTOs/AdditionalCheck/RejectRequestDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/AdditionalCheck/RejectRequestDto.cs
rename to BMA.EHR.Leave/DTOs/AdditionalCheck/RejectRequestDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/Calendar/UpdateCalendarDto.cs b/BMA.EHR.Leave/DTOs/Calendar/UpdateCalendarDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/Calendar/UpdateCalendarDto.cs
rename to BMA.EHR.Leave/DTOs/Calendar/UpdateCalendarDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/ChangeRound/ChangeRoundHistoryDto.cs b/BMA.EHR.Leave/DTOs/ChangeRound/ChangeRoundHistoryDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/ChangeRound/ChangeRoundHistoryDto.cs
rename to BMA.EHR.Leave/DTOs/ChangeRound/ChangeRoundHistoryDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/ChangeRound/CreateChangeRoundDto.cs b/BMA.EHR.Leave/DTOs/ChangeRound/CreateChangeRoundDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/ChangeRound/CreateChangeRoundDto.cs
rename to BMA.EHR.Leave/DTOs/ChangeRound/CreateChangeRoundDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/ChangeRound/SearchProfileDto.cs b/BMA.EHR.Leave/DTOs/ChangeRound/SearchProfileDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/ChangeRound/SearchProfileDto.cs
rename to BMA.EHR.Leave/DTOs/ChangeRound/SearchProfileDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/ChangeRound/SearchProfileResultDto.cs b/BMA.EHR.Leave/DTOs/ChangeRound/SearchProfileResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/ChangeRound/SearchProfileResultDto.cs
rename to BMA.EHR.Leave/DTOs/ChangeRound/SearchProfileResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInDetailForAdminDto.cs b/BMA.EHR.Leave/DTOs/CheckIn/CheckInDetailForAdminDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInDetailForAdminDto.cs
rename to BMA.EHR.Leave/DTOs/CheckIn/CheckInDetailForAdminDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInHistoryDto.cs b/BMA.EHR.Leave/DTOs/CheckIn/CheckInHistoryDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInHistoryDto.cs
rename to BMA.EHR.Leave/DTOs/CheckIn/CheckInHistoryDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInHistoryForAdminDto.cs b/BMA.EHR.Leave/DTOs/CheckIn/CheckInHistoryForAdminDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInHistoryForAdminDto.cs
rename to BMA.EHR.Leave/DTOs/CheckIn/CheckInHistoryForAdminDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInProcessHistoryForAdminDto.cs b/BMA.EHR.Leave/DTOs/CheckIn/CheckInProcessHistoryForAdminDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInProcessHistoryForAdminDto.cs
rename to BMA.EHR.Leave/DTOs/CheckIn/CheckInProcessHistoryForAdminDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInResultDto.cs b/BMA.EHR.Leave/DTOs/CheckIn/CheckInResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/CheckIn/CheckInResultDto.cs
rename to BMA.EHR.Leave/DTOs/CheckIn/CheckInResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/CheckIn/CheckTimeDto.cs b/BMA.EHR.Leave/DTOs/CheckIn/CheckTimeDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/CheckIn/CheckTimeDto.cs
rename to BMA.EHR.Leave/DTOs/CheckIn/CheckTimeDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/CheckIn/EditCheckInStatusDto.cs b/BMA.EHR.Leave/DTOs/CheckIn/EditCheckInStatusDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/CheckIn/EditCheckInStatusDto.cs
rename to BMA.EHR.Leave/DTOs/CheckIn/EditCheckInStatusDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/DutyTime/CreateDutyTimeDto.cs b/BMA.EHR.Leave/DTOs/DutyTime/CreateDutyTimeDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/DutyTime/CreateDutyTimeDto.cs
rename to BMA.EHR.Leave/DTOs/DutyTime/CreateDutyTimeDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/DutyTime/UpdateDutyTimeDto.cs b/BMA.EHR.Leave/DTOs/DutyTime/UpdateDutyTimeDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/DutyTime/UpdateDutyTimeDto.cs
rename to BMA.EHR.Leave/DTOs/DutyTime/UpdateDutyTimeDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/CancelLeaveRequestApproveDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/CancelLeaveRequestApproveDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/CancelLeaveRequestApproveDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/CancelLeaveRequestApproveDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/CancelLeaveRequestDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/CancelLeaveRequestDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/CancelLeaveRequestDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/CancelLeaveRequestDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/CreateLeaveRequestDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/CreateLeaveRequestDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/CreateLeaveRequestDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/CreateLeaveRequestDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/DeleteLeaveDocumentDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/DeleteLeaveDocumentDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/DeleteLeaveDocumentDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/DeleteLeaveDocumentDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetCancelLeaveRequestByIdDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetCancelLeaveRequestByIdDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetCancelLeaveRequestByIdDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetCancelLeaveRequestByIdDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveCancelRequestDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveCancelRequestDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveCancelRequestDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveCancelRequestDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveCancelRequestResultDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveCancelRequestResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveCancelRequestResultDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveCancelRequestResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveCheckDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveCheckDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveCheckDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveCheckDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveCheckResultDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveCheckResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveCheckResultDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveCheckResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestByIdDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestByIdDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestByIdDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestByIdDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestCalendarDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestCalendarDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestCalendarDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestCalendarDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestCalendarResultDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestCalendarResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestCalendarResultDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestCalendarResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminByIdDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminByIdDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminByIdDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminByIdDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminResultDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestForAdminResultDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestForAdminResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestTableDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestTableDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestTableDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestTableDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestTableResultDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestTableResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveRequestTableResultDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveRequestTableResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveSummaryDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveSummaryDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetLeaveSummaryDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetLeaveSummaryDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetUserLeaveProfileDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetUserLeaveProfileDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetUserLeaveProfileDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetUserLeaveProfileDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetUserLeaveProfileResultDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/GetUserLeaveProfileResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/GetUserLeaveProfileResultDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/GetUserLeaveProfileResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/LeaveDocumentDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/LeaveDocumentDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/LeaveDocumentDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/LeaveDocumentDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveRequest/LeaveRequestApproveDto.cs b/BMA.EHR.Leave/DTOs/LeaveRequest/LeaveRequestApproveDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveRequest/LeaveRequestApproveDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveRequest/LeaveRequestApproveDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/LeaveTypes/CreateLeaveTypeDto.cs b/BMA.EHR.Leave/DTOs/LeaveTypes/CreateLeaveTypeDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/LeaveTypes/CreateLeaveTypeDto.cs
rename to BMA.EHR.Leave/DTOs/LeaveTypes/CreateLeaveTypeDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/POI/GetPOIDto.cs b/BMA.EHR.Leave/DTOs/POI/GetPOIDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/POI/GetPOIDto.cs
rename to BMA.EHR.Leave/DTOs/POI/GetPOIDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/POI/GetPOIResultDto.cs b/BMA.EHR.Leave/DTOs/POI/GetPOIResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/POI/GetPOIResultDto.cs
rename to BMA.EHR.Leave/DTOs/POI/GetPOIResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/POI/POIResultDto.cs b/BMA.EHR.Leave/DTOs/POI/POIResultDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/POI/POIResultDto.cs
rename to BMA.EHR.Leave/DTOs/POI/POIResultDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/Reports/GetLeaveDetailReportDto.cs b/BMA.EHR.Leave/DTOs/Reports/GetLeaveDetailReportDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/Reports/GetLeaveDetailReportDto.cs
rename to BMA.EHR.Leave/DTOs/Reports/GetLeaveDetailReportDto.cs
diff --git a/BMA.EHR.Leave.Service/DTOs/Reports/GetLeaveReportDto.cs b/BMA.EHR.Leave/DTOs/Reports/GetLeaveReportDto.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/DTOs/Reports/GetLeaveReportDto.cs
rename to BMA.EHR.Leave/DTOs/Reports/GetLeaveReportDto.cs
diff --git a/BMA.EHR.Leave.Service/Dockerfile b/BMA.EHR.Leave/Dockerfile
similarity index 59%
rename from BMA.EHR.Leave.Service/Dockerfile
rename to BMA.EHR.Leave/Dockerfile
index 542e9323..a6899e01 100644
--- a/BMA.EHR.Leave.Service/Dockerfile
+++ b/BMA.EHR.Leave/Dockerfile
@@ -11,17 +11,17 @@ WORKDIR /src
COPY ["BMA.EHR.Domain/BMA.EHR.Domain.csproj", "BMA.EHR.Domain/"]
COPY ["BMA.EHR.Application/BMA.EHR.Application.csproj", "BMA.EHR.Application/"]
COPY ["BMA.EHR.Infrastructure/BMA.EHR.Infrastructure.csproj", "BMA.EHR.Infrastructure/"]
-COPY ["BMA.EHR.Leave.Service/BMA.EHR.Leave.Service.csproj", "BMA.EHR.Leave.Service/"]
+COPY ["BMA.EHR.Leave/BMA.EHR.Leave.csproj", "BMA.EHR.Leave/"]
-RUN dotnet restore "BMA.EHR.Leave.Service/BMA.EHR.Leave.Service.csproj"
+RUN dotnet restore "BMA.EHR.Leave/BMA.EHR.Leave.csproj"
COPY . .
-WORKDIR "/src/BMA.EHR.Leave.Service"
-RUN dotnet build "BMA.EHR.Leave.Service.csproj" -c Release -o /app/build
+WORKDIR "/src/BMA.EHR.Leave"
+RUN dotnet build "BMA.EHR.Leave.csproj" -c Release -o /app/build
FROM build AS publish
-RUN dotnet publish "BMA.EHR.Leave.Service.csproj" -c Release -o /app/publish /p:UseAppHost=false
+RUN dotnet publish "BMA.EHR.Leave.csproj" -c Release -o /app/publish /p:UseAppHost=false
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
-ENTRYPOINT ["dotnet", "BMA.EHR.Leave.Service.dll"]
\ No newline at end of file
+ENTRYPOINT ["dotnet", "BMA.EHR.Leave.dll"]
\ No newline at end of file
diff --git a/BMA.EHR.Leave.Service/Filters/CustomAuthorizeFilter.cs b/BMA.EHR.Leave/Filters/CustomAuthorizeFilter.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/Filters/CustomAuthorizeFilter.cs
rename to BMA.EHR.Leave/Filters/CustomAuthorizeFilter.cs
diff --git a/BMA.EHR.Leave.Service/Program.cs b/BMA.EHR.Leave/Program.cs
similarity index 100%
rename from BMA.EHR.Leave.Service/Program.cs
rename to BMA.EHR.Leave/Program.cs
diff --git a/BMA.EHR.Leave.Service/Properties/launchSettings.json b/BMA.EHR.Leave/Properties/launchSettings.json
similarity index 100%
rename from BMA.EHR.Leave.Service/Properties/launchSettings.json
rename to BMA.EHR.Leave/Properties/launchSettings.json
diff --git a/BMA.EHR.Leave.Service/SeedLeaveData.xlsx b/BMA.EHR.Leave/SeedLeaveData.xlsx
similarity index 100%
rename from BMA.EHR.Leave.Service/SeedLeaveData.xlsx
rename to BMA.EHR.Leave/SeedLeaveData.xlsx
diff --git a/BMA.EHR.Leave.Service/appsettings.Development.json b/BMA.EHR.Leave/appsettings.Development.json
similarity index 100%
rename from BMA.EHR.Leave.Service/appsettings.Development.json
rename to BMA.EHR.Leave/appsettings.Development.json
diff --git a/BMA.EHR.Leave.Service/appsettings.json b/BMA.EHR.Leave/appsettings.json
similarity index 100%
rename from BMA.EHR.Leave.Service/appsettings.json
rename to BMA.EHR.Leave/appsettings.json
diff --git a/BMA.EHR.Leave.Service/wwwroot/index.html b/BMA.EHR.Leave/wwwroot/index.html
similarity index 100%
rename from BMA.EHR.Leave.Service/wwwroot/index.html
rename to BMA.EHR.Leave/wwwroot/index.html
diff --git a/BMA.EHR.Leave.Service/wwwroot/keycloak.js b/BMA.EHR.Leave/wwwroot/keycloak.js
similarity index 100%
rename from BMA.EHR.Leave.Service/wwwroot/keycloak.js
rename to BMA.EHR.Leave/wwwroot/keycloak.js
diff --git a/BMA.EHR.Leave.Service/wwwroot/keycloak.json b/BMA.EHR.Leave/wwwroot/keycloak.json
similarity index 100%
rename from BMA.EHR.Leave.Service/wwwroot/keycloak.json
rename to BMA.EHR.Leave/wwwroot/keycloak.json