From 26ccf67dad2fdbddf3ec9ac12e3da9c13d1fa951 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Fri, 28 Jun 2024 12:27:55 +0700 Subject: [PATCH 1/6] =?UTF-8?q?fix=20:=20=E0=B9=80=E0=B8=84=E0=B8=A3?= =?UTF-8?q?=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=87=E0=B8=A3=E0=B8=B2=E0=B8=8A?= =?UTF-8?q?=E0=B8=A2=E0=B9=8C=20+=20=E0=B8=9A=E0=B8=B1=E0=B8=99=E0=B8=97?= =?UTF-8?q?=E0=B8=B6=E0=B8=81=E0=B9=80=E0=B8=84=E0=B8=A3=E0=B8=B7=E0=B9=88?= =?UTF-8?q?=E0=B8=AD=E0=B8=87=E0=B8=A3=E0=B8=B2=E0=B8=8A=E0=B8=A2=E0=B9=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/InsigniaPeriodsRepository.cs | 3 +- .../Repositories/UserProfileRepository.cs | 20 ++++++++++ .../Requests/SaveToProfileRequest.cs | 2 +- .../Insignias/PostProfileInsigniaDto.cs | 39 +++++++++++++++++++ .../Controllers/InsigniaReceiveController.cs | 33 +++++++++++++++- 5 files changed, 92 insertions(+), 5 deletions(-) create mode 100644 BMA.EHR.Application/Responses/Insignias/PostProfileInsigniaDto.cs diff --git a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs index 8891e777..0f8b14f3 100644 --- a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs +++ b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs @@ -5179,10 +5179,9 @@ namespace BMA.EHR.Application.Repositories .Include(x => x.Document) //.Include(x => x.Organization) //.ThenInclude(x => x.OrganizationOrganization) - .Where(x => x.OrganizationId != null) .FirstOrDefaultAsync(x => x.Period.Id == period.Id && x.OrganizationId == ocId); - var oc = _userProfileRepository.GetOc(request.OrganizationId, 0, AccessToken); + var oc = _userProfileRepository.GetOc(ocId, 0, AccessToken); return new InsigniaResults { diff --git a/BMA.EHR.Application/Repositories/UserProfileRepository.cs b/BMA.EHR.Application/Repositories/UserProfileRepository.cs index e4a73fb9..ea8bae3a 100644 --- a/BMA.EHR.Application/Repositories/UserProfileRepository.cs +++ b/BMA.EHR.Application/Repositories/UserProfileRepository.cs @@ -1,4 +1,5 @@ using BMA.EHR.Application.Common.Interfaces; +using BMA.EHR.Application.Responses.Insignias; using BMA.EHR.Application.Responses.Organizations; using BMA.EHR.Application.Responses.Profiles; using BMA.EHR.Domain.Models.HR; @@ -533,6 +534,25 @@ namespace BMA.EHR.Application.Repositories } } + + public async Task PostProfileInsigniaAsync(PostProfileInsigniaDto body, string? accessToken) + { + try + { + var apiPath = $"{_configuration["API"]}/org/profile/insignia"; + + var profiles = new List(); + + var apiResult = await PostExternalAPIBooleanAsync(apiPath, accessToken ?? "", body); + + } + catch + { + throw; + } + + } + #endregion } } diff --git a/BMA.EHR.Application/Requests/SaveToProfileRequest.cs b/BMA.EHR.Application/Requests/SaveToProfileRequest.cs index 98438ca0..8343bc1c 100644 --- a/BMA.EHR.Application/Requests/SaveToProfileRequest.cs +++ b/BMA.EHR.Application/Requests/SaveToProfileRequest.cs @@ -22,7 +22,7 @@ namespace BMA.EHR.Application.Requests public string InsigniaName { get; set; } public string InsigniaPage { get; set; } public string InsigniaNo { get; set; } - public int? Kp7InsigniaId { get; set; } + public Guid Kp7InsigniaId { get; set; } } public class DocReceive { diff --git a/BMA.EHR.Application/Responses/Insignias/PostProfileInsigniaDto.cs b/BMA.EHR.Application/Responses/Insignias/PostProfileInsigniaDto.cs new file mode 100644 index 00000000..903976f7 --- /dev/null +++ b/BMA.EHR.Application/Responses/Insignias/PostProfileInsigniaDto.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BMA.EHR.Application.Responses.Insignias +{ + public class PostProfileInsigniaDto + { + public Guid ProfileId { get; set; } + + public int Year { get; set; } = 0; + + public string No { get; set; } = string.Empty; + + public string Volume { get; set; } = string.Empty; + + public string Section { get; set; } = string.Empty; + + public string Page { get; set; } = string.Empty; + + public DateTime ReceiveDate { get; set; } = DateTime.MinValue; + + public Guid InsigniaId { get; set; } + + public DateTime DateAnnounce { get; set; } = DateTime.MinValue; + + public string Issue { get; set; } = string.Empty; + + public string VolumeNo { get; set; } = string.Empty; + + public DateTime? RefCommandDate { get; set; } + + public string RefCommandNo { get; set; } = string.Empty; + + public string Note { get; set; } = string.Empty; + } +} diff --git a/BMA.EHR.Insignia.Service/Controllers/InsigniaReceiveController.cs b/BMA.EHR.Insignia.Service/Controllers/InsigniaReceiveController.cs index dbe8338b..f9993b3d 100644 --- a/BMA.EHR.Insignia.Service/Controllers/InsigniaReceiveController.cs +++ b/BMA.EHR.Insignia.Service/Controllers/InsigniaReceiveController.cs @@ -2,6 +2,7 @@ using BMA.EHR.Application.Repositories; using BMA.EHR.Application.Repositories.MessageQueue; using BMA.EHR.Application.Requests; +using BMA.EHR.Application.Responses.Insignias; using BMA.EHR.Domain.Common; using BMA.EHR.Domain.Models.Insignias; using BMA.EHR.Domain.Shared; @@ -26,19 +27,25 @@ namespace BMA.EHR.Insignia.Service.Controllers private readonly InsigniaPeriodsRepository _repository; private readonly NotificationRepository _repositoryNoti; + private readonly UserProfileRepository _userProfileRepository; + public InsigniaReceiveController(ApplicationDBContext context, MinIOService documentService, InsigniaPeriodsRepository repository, NotificationRepository repositoryNoti, - IHttpContextAccessor httpContextAccessor) + IHttpContextAccessor httpContextAccessor, + UserProfileRepository userProfileRepository) { _context = context; _documentService = documentService; _repository = repository; _repositoryNoti = repositoryNoti; _httpContextAccessor = httpContextAccessor; + _userProfileRepository = userProfileRepository; } + private string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"]; + [HttpGet("{type}/{ocId:length(36)}")] public async Task> GetInsigniaList(string type, Guid id, Guid ocId) { @@ -151,6 +158,28 @@ namespace BMA.EHR.Insignia.Service.Controllers if (items.Profile.Count() != 0) { + foreach(var p in items.Profile) + { + await _userProfileRepository.PostProfileInsigniaAsync(new PostProfileInsigniaDto + { + ProfileId = Guid.Parse(p.FkProfileId), + Year = item.InsigniaDateannounce.Value.Year, + No = p.InsigniaNo, + Volume = item.InsigniaVolume, + Section = item.InsigniaSection, + Page = p.InsigniaPage, + ReceiveDate = item.InsigniaDatereceive.Value, + InsigniaId = p.Kp7InsigniaId, + DateAnnounce = item.InsigniaDateannounce.Value, + Issue = item.InsigniaIssue, + VolumeNo = item.InsigniaVolumeno.Value.ToString(), + + + }, AccessToken); + } + + + // foreach (var i in items.Profile) // { // var profile = _context.Profiles.AsQueryable() @@ -208,7 +237,7 @@ namespace BMA.EHR.Insignia.Service.Controllers // return NotFound("Profile not found!!!"); // } } - _context.SaveChanges(); + //_context.SaveChanges(); return Success(); } From 4d1a8534729896e351f5e1b8414ba87b5d796ec8 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Fri, 28 Jun 2024 16:39:48 +0700 Subject: [PATCH 2/6] fix func cal insignia --- .../Repositories/InsigniaPeriodsRepository.cs | 517 +++++++++--------- 1 file changed, 262 insertions(+), 255 deletions(-) diff --git a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs index 0f8b14f3..e4714c8f 100644 --- a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs +++ b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs @@ -273,18 +273,19 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id, PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); @@ -342,18 +343,18 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id, PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() .Where(x => x.InsigniaId.Value != coinInsignia.Id) @@ -411,18 +412,18 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id, PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() .Where(x => x.InsigniaId.Value != coinInsignia.Id) @@ -570,18 +571,18 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id, PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); var s1 = ((from p in inst_profile @@ -637,18 +638,18 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id, PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() .Where(x => x.InsigniaId.Value != coinInsignia.Id) @@ -705,18 +706,18 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id, PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() .Where(x => x.InsigniaId.Value != coinInsignia.Id) @@ -867,18 +868,18 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id, PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); // check วันที่บรรจะต้องน้อยกว่า 29/5/ปี-5 @@ -928,11 +929,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -989,11 +990,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1044,11 +1045,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1209,11 +1210,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1268,11 +1269,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1395,11 +1396,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1455,11 +1456,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1582,11 +1583,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1642,11 +1643,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1706,11 +1707,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1857,11 +1858,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -1967,11 +1968,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2030,11 +2031,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2094,11 +2095,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2243,11 +2244,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2306,11 +2307,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2443,11 +2444,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2507,11 +2508,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2572,11 +2573,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2721,12 +2722,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2736,7 +2737,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -2863,12 +2864,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -2878,7 +2879,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3018,12 +3019,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3033,7 +3034,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3088,12 +3089,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3103,7 +3104,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3159,12 +3160,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3174,7 +3175,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3311,11 +3312,11 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, PosNo = p.PosNo == null ? "" : p.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia @@ -3326,7 +3327,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3375,12 +3376,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3390,7 +3391,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3508,12 +3509,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3523,7 +3524,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3573,12 +3574,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3588,7 +3589,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3639,12 +3640,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3654,7 +3655,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3788,12 +3789,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3803,7 +3804,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3853,12 +3854,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3868,7 +3869,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3918,12 +3919,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -3933,7 +3934,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4036,12 +4037,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -4051,7 +4052,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4106,12 +4107,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -4121,7 +4122,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4176,12 +4177,12 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, - Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PosNo = p.PosNo == null ? "" : p.PosNo, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) @@ -4191,7 +4192,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4805,8 +4806,11 @@ namespace BMA.EHR.Application.Repositories { try { + var result_candidate = new List(); + if (ocId != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) return result_candidate; + var type_coin = await GetCoinCandidate(periodId, ocId); var employee_type1 = await GetEmployeeInsignia_Type1(periodId, ocId); var employee_type2 = await GetEmployeeInsignia_Type2(periodId, ocId); @@ -5021,7 +5025,7 @@ namespace BMA.EHR.Application.Repositories // Salary = p.Salaries.Count() == 0 ? null : p.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount, // }); - var inst_profile = allProfilesByRoot + var inst_profile = allProfilesByRoot.Where(x => x.DateAppoint != null) .Select(p => new { ProfileId = p.Id, @@ -5031,18 +5035,21 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel == null ? null : p.PosLevel.PosLevelName, ProfileDateAppoint = p.DateAppoint.Value, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), - PosNo = p.ProfileSalary == null ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, PositionLevelId = p.PosLevel == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosLevel.Id, PositionLevelName = p.PosLevel == null ? null : p.PosLevel.PosLevelName, PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, - Salary = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : 0, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); // check วันที่บรรจะต้องมากกว่า 25 ปี From 8d58afdcde96920ad404ce000421f91c9cf3459d Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sat, 29 Jun 2024 11:37:02 +0700 Subject: [PATCH 3/6] =?UTF-8?q?fix=20=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A?= =?UTF-8?q?=E0=B8=84=E0=B8=B3=E0=B8=99=E0=B8=A7=E0=B8=99=E0=B9=80=E0=B8=84?= =?UTF-8?q?=E0=B8=A3=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=87=E0=B8=A3=E0=B8=B2?= =?UTF-8?q?=E0=B8=8A=E0=B8=A2=E0=B9=8C=20=E0=B9=83=E0=B8=AB=E0=B9=89?= =?UTF-8?q?=E0=B9=80=E0=B8=8A=E0=B9=87=E0=B8=84=E0=B9=80=E0=B8=87=E0=B8=B7?= =?UTF-8?q?=E0=B9=88=E0=B8=AD=E0=B8=99=E0=B9=84=E0=B8=82=E0=B8=82=E0=B8=AD?= =?UTF-8?q?=E0=B8=87=E0=B8=82=E0=B9=89=E0=B8=AD=E0=B8=A1=E0=B8=B9=E0=B8=A5?= =?UTF-8?q?=E0=B8=AD=E0=B8=A2=E0=B9=88=E0=B8=B2=E0=B8=87=E0=B8=84=E0=B8=A3?= =?UTF-8?q?=E0=B8=9A=E0=B8=96=E0=B9=89=E0=B8=A7=E0=B8=99=20(=E0=B8=81?= =?UTF-8?q?=E0=B8=A3=E0=B8=AD=E0=B8=87=E0=B8=95=E0=B8=B2=E0=B8=A1=E0=B9=80?= =?UTF-8?q?=E0=B8=87=E0=B8=B7=E0=B9=88=E0=B8=AD=E0=B8=99=E0=B9=84=E0=B8=82?= =?UTF-8?q?=E0=B9=81=E0=B8=A5=E0=B9=89=E0=B8=A7=20null=20object=20?= =?UTF-8?q?=E0=B9=81=E0=B8=A5=E0=B9=89=E0=B8=A7=E0=B9=84=E0=B8=A1=E0=B9=88?= =?UTF-8?q?=E0=B9=84=E0=B8=94=E0=B9=89=E0=B8=95=E0=B8=A3=E0=B8=A7=E0=B8=88?= =?UTF-8?q?=E0=B8=AA=E0=B8=AD=E0=B8=9A)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/InsigniaPeriodsRepository.cs | 894 ++++++++++++++---- 1 file changed, 689 insertions(+), 205 deletions(-) diff --git a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs index e4714c8f..80f7354c 100644 --- a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs +++ b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs @@ -20,7 +20,7 @@ namespace BMA.EHR.Application.Repositories private readonly IHttpContextAccessor _httpContextAccessor; private readonly MinIOService _documentService; private readonly UserProfileRepository _userProfileRepository; - + private List _insigniaLists = new(); public InsigniaPeriodsRepository(IApplicationDBContext dbContext, @@ -32,6 +32,8 @@ namespace BMA.EHR.Application.Repositories _httpContextAccessor = httpContextAccessor; _documentService = documentService; _userProfileRepository = userProfileRepository; + + _insigniaLists = _dbContext.Set().Include(x => x.InsigniaType).ToList(); } public async Task> FindByNameAsync(string name) @@ -76,8 +78,7 @@ namespace BMA.EHR.Application.Repositories { try { - var insignia = _dbContext.Set() - .Include(x => x.InsigniaType) + var insignia = _insigniaLists .Where(x => x.Name == name) .Select(i => new InsigniaItem { @@ -89,6 +90,19 @@ namespace BMA.EHR.Application.Repositories }) .FirstOrDefault(); + //var insignia = _dbContext.Set() + // .Include(x => x.InsigniaType) + // .Where(x => x.Name == name) + // .Select(i => new InsigniaItem + // { + // Id = i.Id, + // Name = i.Name, + // ShortName = i.ShortName, + // Level = i.InsigniaType.Name, + // LevelId = i.InsigniaType.Id + // }) + // .FirstOrDefault(); + return insignia; } catch @@ -101,8 +115,7 @@ namespace BMA.EHR.Application.Repositories { try { - var insignia = _dbContext.Set() - .Include(x => x.InsigniaType) + var insignia = _insigniaLists .Where(x => x.Id == id) .Select(i => new InsigniaItem { @@ -114,6 +127,19 @@ namespace BMA.EHR.Application.Repositories }) .FirstOrDefault(); + //var insignia = _dbContext.Set() + // .Include(x => x.InsigniaType) + // .Where(x => x.Id == id) + // .Select(i => new InsigniaItem + // { + // Id = i.Id, + // Name = i.Name, + // ShortName = i.ShortName, + // Level = i.InsigniaType.Name, + // LevelId = i.InsigniaType.Id + // }) + // .FirstOrDefault(); + return insignia; } catch @@ -283,8 +309,10 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : - p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); @@ -353,7 +381,10 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() @@ -422,7 +453,11 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() @@ -581,7 +616,10 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); @@ -648,7 +686,11 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() @@ -716,7 +758,11 @@ namespace BMA.EHR.Application.Repositories LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia.ToList() @@ -874,11 +920,19 @@ namespace BMA.EHR.Application.Repositories PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); @@ -917,6 +971,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("เบญจมาภรณ์ช้างเผือก").Id @@ -929,10 +985,18 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia @@ -978,6 +1042,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("จัตุรถาภรณ์มงกุฎไทย").Id @@ -990,13 +1056,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1033,6 +1108,8 @@ namespace BMA.EHR.Application.Repositories var s4 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ปฏิบัติงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("จัตุรถาภรณ์ช้างเผือก").Id @@ -1045,13 +1122,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1198,6 +1284,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ชำนาญงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์มงกุฎไทย").Id @@ -1210,13 +1298,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1257,6 +1354,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ชำนาญงาน" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id @@ -1269,13 +1368,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1283,8 +1391,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญงาน").OrderBy(p => p.Date).FirstOrDefault().Date + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญงาน").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญงาน").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() .Where(x => x.FirstPositonLevelDate < new DateTime(period.Year - 5, 5, 29)) @@ -1383,7 +1492,9 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ชำนาญงาน" + && p.PosLevel.PosLevelName == "อาวุโส" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id @@ -1396,13 +1507,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1410,8 +1530,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() .Select(p => new InsigniaResultSet @@ -1443,7 +1564,9 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" - && p.PosLevel.PosLevelName == "ชำนาญงาน" + && p.PosLevel.PosLevelName == "อาวุโส" + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -1456,13 +1579,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1470,7 +1602,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() @@ -1571,6 +1704,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && (p.PosLevel.PosLevelName == "อาวุโส" || p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -1583,13 +1718,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1597,7 +1741,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() @@ -1631,6 +1776,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && (p.PosLevel.PosLevelName == "อาวุโส" || p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -1643,13 +1790,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1657,7 +1813,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -1695,6 +1852,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && (p.PosLevel.PosLevelName == "อาวุโส" || p.PosLevel.PosLevelName == "อาวุโส (เฉพาะสายงาน)") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -1707,13 +1866,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1721,7 +1889,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -1858,13 +2027,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1872,7 +2050,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -1956,6 +2135,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ตริตาภรณ์ช้างเผือก").Id @@ -1968,13 +2149,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -1982,8 +2172,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2019,6 +2210,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์มงกุฎไทย").Id @@ -2031,13 +2224,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2045,8 +2247,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2083,6 +2286,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -2095,13 +2300,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2109,8 +2323,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2232,6 +2447,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการพิเศษ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -2244,13 +2461,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2258,8 +2484,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2295,6 +2522,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ชำนาญการพิเศษ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -2307,13 +2536,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2321,8 +2559,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2432,6 +2671,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -2444,13 +2685,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2458,8 +2708,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2496,6 +2747,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -2508,13 +2761,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2522,8 +2784,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2561,6 +2824,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "เชี่ยวชาญ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -2573,13 +2838,22 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2587,8 +2861,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2710,6 +2985,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -2722,14 +2999,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2738,7 +3024,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2780,6 +3067,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -2792,14 +3081,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.PosNo == null ? "" : p.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2807,8 +3105,9 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -2852,6 +3151,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id @@ -2864,14 +3165,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -2880,7 +3190,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3007,6 +3318,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -3019,14 +3332,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3035,7 +3357,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3077,6 +3400,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -3089,14 +3414,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3105,6 +3439,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3148,6 +3483,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "วิชาการ" && (p.PosLevel.PosLevelName == "ทรงคุณวุฒิ") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id @@ -3160,14 +3497,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3176,7 +3522,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3300,6 +3647,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id @@ -3312,14 +3661,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.PosNo == null ? "" : p.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3328,7 +3686,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3364,6 +3723,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -3376,14 +3737,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3392,7 +3762,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3497,6 +3868,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -3509,14 +3882,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3525,7 +3907,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3562,6 +3945,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -3574,14 +3959,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3590,7 +3984,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3628,6 +4023,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "อำนวยการ" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -3640,14 +4037,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3656,7 +4062,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3777,6 +4184,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id @@ -3789,14 +4198,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3805,7 +4223,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3842,6 +4261,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -3854,14 +4275,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3870,7 +4300,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -3907,6 +4338,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "ต้น") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -3919,14 +4352,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -3935,7 +4377,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -4025,6 +4468,8 @@ namespace BMA.EHR.Application.Repositories var s1 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id @@ -4037,14 +4482,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -4053,7 +4507,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -4095,6 +4550,8 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาวชิรมงกุฎ").Id @@ -4107,14 +4564,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -4123,7 +4589,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -4165,6 +4632,8 @@ namespace BMA.EHR.Application.Repositories var s3 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "บริหาร" && (p.PosLevel.PosLevelName == "สูง") // อาวุโส + && p.ProfileInsignia != null + && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value != GetInsigniaByName("มหาปรมาภรณ์ช้างเผือก").Id @@ -4177,14 +4646,23 @@ namespace BMA.EHR.Application.Repositories Rank = p.PosLevel.PosLevelName, GovAge = p.DateAppoint.Value.CalculateGovAgeStr(0, 0), ProfileDateAppoint = p.DateAppoint.Value, - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, SalaryPosition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionSalaryAmount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.Date <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount, + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, + PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = IsHigherLevel(GetInsigniaById(p.ProfileInsignia + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) .FirstOrDefault().InsigniaId.Value).Name, @@ -4193,7 +4671,8 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault().Year @@ -5041,13 +5520,18 @@ namespace BMA.EHR.Application.Repositories PositionTypeId = p.PosType == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.PosType.Id, PositionTypeName = p.PosType == null ? null : p.PosType.PosTypeName, Gender = p.Gender ?? "", - LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? null : GetInsigniaById(p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value).Name, - LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ProfileInsignia!.OrderByDescending(x => x.Year).FirstOrDefault()!.InsigniaId.Value, + LastInsignia = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? "" : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? "" : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Name, + LastInsigniaId = p.ProfileInsignia == null || p.ProfileInsignia.Count == 0 ? Guid.Empty : + p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? Guid.Empty : + GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? - p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : 0, + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); From da6e4acc52816f3f16ed57b9e0319c7077023041 Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sun, 30 Jun 2024 14:23:23 +0700 Subject: [PATCH 4/6] =?UTF-8?q?fix=20:=20Insignia=20Request=20Controlle=20?= =?UTF-8?q?(=E0=B9=81=E0=B8=AA=E0=B8=94=E0=B8=87=E0=B8=82=E0=B9=89?= =?UTF-8?q?=E0=B8=AD=E0=B8=A1=E0=B8=B9=E0=B8=A5=E0=B8=82=E0=B8=AD=E0=B8=87?= =?UTF-8?q?=E0=B8=9C=E0=B8=B9=E0=B9=89=E0=B8=82=E0=B8=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Repositories/InsigniaPeriodsRepository.cs | 135 ++-- .../Controllers/InsigniaRequestController.cs | 754 +++++++++--------- 2 files changed, 457 insertions(+), 432 deletions(-) diff --git a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs index 80f7354c..857885fe 100644 --- a/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs +++ b/BMA.EHR.Application/Repositories/InsigniaPeriodsRepository.cs @@ -971,7 +971,7 @@ namespace BMA.EHR.Application.Repositories var s2 = (from p in allProfilesByRoot where p.PosType.PosTypeName == "ทั่วไป" && p.PosLevel.PosLevelName == "ปฏิบัติงาน" - && p.ProfileInsignia != null + && p.ProfileInsignia != null && p.ProfileInsignia.Count > 0 && p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) @@ -1521,7 +1521,7 @@ namespace BMA.EHR.Application.Repositories PosNo = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? "" : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PosNo, Gender = p.Gender == null ? null : p.Gender, - IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : + IsHigherLevel = p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).FirstOrDefault() == null ? true : IsHigherLevel(GetInsigniaById(p.ProfileInsignia .Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id) .OrderByDescending(x => x.Year) @@ -1532,7 +1532,7 @@ namespace BMA.EHR.Application.Repositories PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date }) .ToList() .Select(p => new InsigniaResultSet @@ -1741,7 +1741,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, - FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : + FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date }) @@ -2173,7 +2173,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -2560,7 +2560,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ชำนาญการพิเศษ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -2785,7 +2785,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -2862,7 +2862,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "เชี่ยวชาญ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3106,7 +3106,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3357,7 +3357,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ทรงคุณวุฒิ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3439,7 +3439,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "อาวุโส").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3762,7 +3762,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3907,7 +3907,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -3984,7 +3984,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4062,7 +4062,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "อำนวยการ").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4223,7 +4223,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ทวีติยาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4300,7 +4300,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4377,7 +4377,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "ต้น" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4507,7 +4507,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์มงกุฎไทย").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4589,7 +4589,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("ประถมาภรณ์ช้างเผือก").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -4671,7 +4671,7 @@ namespace BMA.EHR.Application.Repositories PositionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName, PositionType = p.PosType == null ? "" : p.PosType.PosTypeName, FirstPositonLevelDate = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? null : - p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : + p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault() == null ? null : p.ProfileSalary.Where(x => x.PositionLevel == "สูง" && x.PositionType == "บริหาร").OrderBy(p => p.Date).FirstOrDefault().Date, FirstRecvInsigniaYear = p.ProfileInsignia.Count == 0 ? 0 : p.ProfileInsignia.Where(x => x.InsigniaId.Value == GetInsigniaByName("มหาวชิรมงกุฎ").Id).OrderBy(x => x.Year).FirstOrDefault() == null ? 0 : @@ -5288,7 +5288,7 @@ namespace BMA.EHR.Application.Repositories var result_candidate = new List(); - if (ocId != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) return result_candidate; + //if (ocId != Guid.Parse("e8493cd1-d371-402e-add6-566e68d5d1b3")) return result_candidate; var type_coin = await GetCoinCandidate(periodId, ocId); var employee_type1 = await GetEmployeeInsignia_Type1(periodId, ocId); @@ -5528,11 +5528,11 @@ namespace BMA.EHR.Application.Repositories GetInsigniaById(p.ProfileInsignia.Where(x => x.InsigniaId.Value != GetInsigniaByName("เหรียญจักรพรรดิมาลา").Id).OrderByDescending(x => x.Year).FirstOrDefault().InsigniaId.Value).Id, Salary = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.Amount, //SalaryCondition = p.ProfileSalary == null ? 0 : p.ProfileSalary.Amount, - SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + SalaryCondition = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault() != null ? - p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : + p.ProfileSalary.Where(x => x.Date.Value <= new DateTime(period.Year, 4, 29)).OrderByDescending(x => x.Order).FirstOrDefault().Amount : p.ProfileSalary.OrderBy(x => x.Order).FirstOrDefault().Amount, - PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : + PostionSalaryAmount = p.ProfileSalary == null || p.ProfileSalary.Count == 0 ? 0 : p.ProfileSalary!.OrderByDescending(x => x.Order).FirstOrDefault()!.PositionSalaryAmount, }); @@ -5768,46 +5768,20 @@ namespace BMA.EHR.Application.Repositories var id = await GetRequestId(period, ocId); if (id != null) { - var result = (_dbContext.Set() - .Include(x => x.Request) - .Include(x => x.RequestInsignia) - .ThenInclude(x => x.InsigniaType) - //.Include(x => x.Profile) - //.ThenInclude(x => x.Salaries) - //.Include(x => x.Profile) - //.ThenInclude(x => x.Position) - //.Include(x => x.Profile) - //.ThenInclude(x => x.PositionEmployeePosition) - //.Include(x => x.Profile) - //.ThenInclude(x => x.PosNo) - //.Include(x => x.Profile) - //.ThenInclude(x => x.PositionLevel) - //.Include(x => x.Profile) - //.ThenInclude(x => x.PositionType) - //.Include(x => x.Profile) - //.ThenInclude(x => x.Prefix) - ////.Include(x => x.Profile) - ////.ThenInclude(x => x.OrganizationOrganization) - //.Include(x => x.Profile) - //.ThenInclude(x => x.PositionLevel) - //.Include(x => x.Profile) - //.ThenInclude(x => x.Insignias) - //.ThenInclude(x => x.Insignia) - .Where(h => status.Trim().ToUpper() == "ALL" ? h.Status != null : h.Status == status.Trim().ToUpper()) - .Where(h => h.Request.Id == id) - .ToList() - .Select(h => new InsigniaRequestItem + var raw_result = _dbContext.Set() + .Include(x => x.Request) + .Include(x => x.RequestInsignia) + .ThenInclude(x => x.InsigniaType) + + .Where(h => status.Trim().ToUpper() == "ALL" ? h.Status != null : h.Status == status.Trim().ToUpper()) + .Where(h => h.Request.Id == id) + .ToList(); + + var pre_result = raw_result + .Select(h => new { Id = h.Id, - CitizenId = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).CitizenId, - ProfileId = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).Id, - ProfileType = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).ProfileType, - FullName = $"{_userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).Prefix}{_userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).FirstName} {_userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).LastName}", - Position = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).Position, - PosNo = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo, - Rank = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PositionLevel, - Salary = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount.ToString(), - LastInsignia = GetInsigniaById(_userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken).ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().Id.Value).Name, + Profile = _userProfileRepository.GetOfficerProfileById(h.ProfileId, AccessToken), RequestInsignia = h.RequestInsignia.Name, RequestInsigniaShortName = h.RequestInsignia.ShortName, Level = h.RequestInsignia.InsigniaType.Name, @@ -5820,7 +5794,40 @@ namespace BMA.EHR.Application.Repositories MarkLeave = h.MarkLeave, MarkRate = h.MarkRate, // Docs = GetDocFile(h.Profile.Id), - MatchingConditions = h.MatchingConditions == null ? null : JsonConvert.DeserializeObject>(h.MatchingConditions) + MatchingConditions = h.MatchingConditions == null || h.MatchingConditions == "" ? null : JsonConvert.DeserializeObject>(h.MatchingConditions) + }) + .ToList(); + + var result = (pre_result + .Select(h => new InsigniaRequestItem + { + Id = h.Id, + CitizenId = h.Profile.CitizenId, + ProfileId = h.Profile.Id, + ProfileType = h.Profile.ProfileType, + FullName = $"{h.Profile.Prefix}{h.Profile.FirstName} {h.Profile.LastName}", + Position = h.Profile.Position, + PosNo = h.Profile.ProfileSalary == null || h.Profile.ProfileSalary.Count == 0 ? "" : + h.Profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo, + Rank = h.Profile.PosLevel.PosLevelName, + + Salary = h.Profile.ProfileSalary == null || h.Profile.ProfileSalary.Count == 0 ? "0" : + h.Profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount.ToString(), + LastInsignia = h.Profile.ProfileInsignia == null || h.Profile.ProfileInsignia.Count == 0 ? "" : + GetInsigniaById(h.Profile.ProfileInsignia.OrderByDescending(x => x.Year).FirstOrDefault().Id.Value).Name, + RequestInsignia = h.RequestInsignia, + RequestInsigniaShortName = h.RequestInsigniaShortName, + Level = h.Level, + IsApprove = h.IsApprove, + RequestDate = h.RequestDate, + Status = h.Status, + RequestNote = h.RequestNote, + Reason = h.Reason, + MarkDiscipline = h.MarkDiscipline, + MarkLeave = h.MarkLeave, + MarkRate = h.MarkRate, + // Docs = GetDocFile(h.Profile.Id), + MatchingConditions = h.MatchingConditions })).ToList(); return result; diff --git a/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs index b4dad631..5fb38fae 100644 --- a/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs +++ b/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs @@ -422,10 +422,12 @@ namespace BMA.EHR.Insignia.Service.Controllers var result = await _repository.GetInsigniaRequest(insigniaPeriodId, ocId); if (result != null) { - // Guid period = result.PeriodId; - // var periodName = result.Name; - // string requestStatus = result.RequestStatus; - // string requestNote = result.RequestNote; + Guid period = result.PeriodId; + var periodName = result.Name; + string requestStatus = result.RequestStatus; + string requestNote = result.RequestNote; + + var resend = new InsigniaResults { PeriodId = result.PeriodId, @@ -444,14 +446,16 @@ namespace BMA.EHR.Insignia.Service.Controllers return Success(resend); if (RoleInsignia2 == true && (result.RequestStatus == "st1" || result.RequestStatus == "st2")) return Success(resend); - // var candidate = await _repository.GetInsigniaCandidateBKK(period, ocId); - // // ตรวจสอบว่ารายการอยู่ใน table insignia_request_new - // if (requestStatus == null) - // { - // // บันทึกรายชื่อ - // await _repository.InsertCandidate(period, ocId, candidate); - // } + // Jack Remark Remove เพื่อให้เรียกขข้อมูลออกมาเร็สวขึ้น + //var candidate = await _repository.GetInsigniaCandidateBKK(period, ocId); + + //// ตรวจสอบว่ารายการอยู่ใน table insignia_request_new + //if (requestStatus == null) + //{ + // // บันทึกรายชื่อ + // await _repository.InsertCandidate(period, ocId, candidate); + //} if (role.Trim().ToUpper() == "OFFICER") { resend.Items = await _repository.InsigniaHasProfile(result.PeriodId, ocId, status); @@ -459,132 +463,136 @@ namespace BMA.EHR.Insignia.Service.Controllers } else { - // var passData = _context.InsigniaRequests.AsQueryable() - // .Include(x => x.Organization) - // .Include(x => x.RequestProfiles) - // .Where(x => x.Organization.Id == ocId) - // .Where(x => x.Period.Id == period) - // .Select(ir => new - // { - // requstID = ir.Id, - // requstStatus = ir.RequestStatus, - // requstStatusName = GetRequestlStatusText(ir.RequestStatus), - // fkInstituteId = -1, - // // fkDivisionId = ir.Organization.Id, - // // fkDivision = ir.Organization.Name, - // fkInstitute = "", - // fkPeriodId = ir.Period.Id, - // insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable() - // .Include(x => x.Profile) - // .ThenInclude(x => x.Position) - // .Include(x => x.Profile) - // // .ThenInclude(x => x.PositionNumber) - // .Include(x => x.Profile) - // // .ThenInclude(x => x.AcademicStanding) - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .Select(irp => new - // { - // request_id = irp.Request.Id, - // isApprove = irp.IsApprove, - // statusInstitute = irp.IsApprove.ToString(), - // request_date = irp.RequestDate, - // profileId = irp.Profile.Id, - // // prefix = irp.Profile.Prefix, - // firstname = irp.Profile.FirstName, - // lastname = irp.Profile.LastName, - // // posno = irp.Profile.PositionNumber.Id, - // type = irp.Profile.ProfileType, - // // position = irp.Profile.Position.Name, - // // rank = $"{irp.Profile.PositionType.Name}/{irp.Profile.PositionLevel.Name}", - // instituteName = "", - // instituteId = -1, - // // divisionName = irp.Profile.OrganizationOrganization.Name, - // // divisionId = irp.Profile.OrganizationOrganization.Id, - // lastInsigniaName = "", - // requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name, - // requestInsigniaName = irp.RequestInsignia.Name, - // requestQua = irp.QualificationStatus, - // requestDoc = irp.DocumentStatus, - // requestNote = irp.Note, - // requestSalary = irp.Salary, - // matchingConditions = JsonConvert.DeserializeObject>(irp.MatchingConditions) - // }) - // .Where(x => x.isApprove) - // .OrderBy(y => y.profileId) - // .ToList() - // }) - // .ToList() - // .FirstOrDefault(); + var passData = _context.InsigniaRequests.AsQueryable() + //.Include(x => x.Organization) + .Include(x => x.RequestProfiles) + .Where(x => x.OrganizationId == ocId) + .Where(x => x.Period.Id == period) + .Select(ir => new + { + requstID = ir.Id, + requstStatus = ir.RequestStatus, + requstStatusName = GetRequestlStatusText(ir.RequestStatus), + fkInstituteId = -1, + // fkDivisionId = ir.Organization.Id, + // fkDivision = ir.Organization.Name, + fkInstitute = "", + fkPeriodId = ir.Period.Id, + insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable() + //.Include(x => x.Profile) + //.ThenInclude(x => x.Position) + //.Include(x => x.Profile) + // .ThenInclude(x => x.PositionNumber) + //.Include(x => x.Profile) + // .ThenInclude(x => x.AcademicStanding) + .Include(x => x.RequestInsignia) + .ThenInclude(x => x.InsigniaType) + .Select(irp => new + { + request_id = irp.Request.Id, + isApprove = irp.IsApprove, + statusInstitute = irp.IsApprove.ToString(), + request_date = irp.RequestDate, + profileId = irp.ProfileId, + prefix = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).Prefix, //irp.Profile.Prefix, + firstname = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).FirstName, //irp.Profile.FirstName, + lastname = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).LastName, //irp.Profile.LastName, + posno = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary.Count == 0 || + _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary == null ? "" : + _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo,// irp.Profile.PositionNumber.Id, + type = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileType, //irp.Profile.ProfileType, + position = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).Position, // irp.Profile.Position.Name, + rank = $"{_userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).PosType.PosTypeName}/{_userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).PosLevel.PosLevelName}", // $"{irp.Profile.PositionType.Name}/{irp.Profile.PositionLevel.Name}", + instituteName = "", + instituteId = -1, + // divisionName = irp.Profile.OrganizationOrganization.Name, + // divisionId = irp.Profile.OrganizationOrganization.Id, + lastInsigniaName = "", + requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name, + requestInsigniaName = irp.RequestInsignia.Name, + requestQua = "",// irp.QualificationStatus, + requestDoc = "", //irp.DocumentStatus, + requestNote = "", // irp.Note, + requestSalary = irp.Salary, + matchingConditions = JsonConvert.DeserializeObject>(irp.MatchingConditions) + }) + .Where(x => x.isApprove) + .OrderBy(y => y.profileId) + .ToList() + }) + .ToList() + .FirstOrDefault(); - // var failData = _context.InsigniaRequests.AsQueryable() - // .Include(x => x.Organization) - // .Include(x => x.RequestProfiles) - // .Where(x => x.Organization.Id == ocId) - // .Where(x => x.Period.Id == period) - // .Select(ir => new - // { - // requstID = ir.Id, - // requstStatus = ir.RequestStatus, - // requstStatusName = GetRequestlStatusText(ir.RequestStatus), - // fkInstituteId = -1, - // // fkDivisionId = ir.Organization.Id, - // // fkDivision = ir.Organization.Name, - // fkInstitute = "", - // fkPeriodId = ir.Period.Id, - // insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable() - // .Include(x => x.Profile) - // .ThenInclude(x => x.Position) - // .Include(x => x.Profile) - // // .ThenInclude(x => x.PositionNumber) - // .Include(x => x.Profile) - // // .ThenInclude(x => x.AcademicStanding) - // .Include(x => x.RequestInsignia) - // .ThenInclude(x => x.InsigniaType) - // .Select(irp => new - // { - // request_id = irp.Request.Id, - // isApprove = irp.IsApprove, - // statusInstitute = irp.IsApprove.ToString(), - // request_date = irp.RequestDate, - // profileId = irp.Profile.Id, - // // prefix = irp.Profile.Prefix, - // firstname = irp.Profile.FirstName, - // lastname = irp.Profile.LastName, - // // posno = irp.Profile.PositionNumber.Id, - // type = irp.Profile.ProfileType, - // // position = irp.Profile.Position.Name, - // // rank = irp.Profile.AcademicStanding.Name, - // instituteName = "", - // instituteId = -1, - // // divisionName = irp.Profile.OrganizationOrganization.Name, - // // divisionId = irp.Profile.OrganizationOrganization.Id, - // lastInsigniaName = "", - // requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name, - // requestInsigniaName = irp.RequestInsignia.Name, - // requestQua = irp.QualificationStatus, - // requestDoc = irp.DocumentStatus, - // requestNote = irp.Note, - // requestSalary = irp.Salary, - // matchingConditions = JsonConvert.DeserializeObject>(irp.MatchingConditions) - // }) - // .Where(x => !x.isApprove) - // .OrderBy(y => y.profileId) - // .ToList() - // }) - // .ToList() - // .FirstOrDefault(); + var failData = _context.InsigniaRequests.AsQueryable() + //.Include(x => x.Organization) + .Include(x => x.RequestProfiles) + .Where(x => x.OrganizationId == ocId) + .Where(x => x.Period.Id == period) + .Select(ir => new + { + requstID = ir.Id, + requstStatus = ir.RequestStatus, + requstStatusName = GetRequestlStatusText(ir.RequestStatus), + fkInstituteId = -1, + // fkDivisionId = ir.Organization.Id, + // fkDivision = ir.Organization.Name, + fkInstitute = "", + fkPeriodId = ir.Period.Id, + insigniaRequestHasProfile = ir.RequestProfiles.AsQueryable() + //.Include(x => x.Profile) + //.ThenInclude(x => x.Position) + //.Include(x => x.Profile) + // .ThenInclude(x => x.PositionNumber) + //.Include(x => x.Profile) + // .ThenInclude(x => x.AcademicStanding) + .Include(x => x.RequestInsignia) + .ThenInclude(x => x.InsigniaType) + .Select(irp => new + { + request_id = irp.Request.Id, + isApprove = irp.IsApprove, + statusInstitute = irp.IsApprove.ToString(), + request_date = irp.RequestDate, + profileId = irp.ProfileId, + prefix = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).Prefix, //irp.Profile.Prefix, + firstname = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).FirstName, //irp.Profile.FirstName, + lastname = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).LastName, //irp.Profile.LastName, + posno = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary.Count == 0 || + _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary == null ? "" : + _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().PosNo,// irp.Profile.PositionNumber.Id, + type = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).ProfileType, //irp.Profile.ProfileType, + position = _userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).Position, // irp.Profile.Position.Name, + rank = $"{_userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).PosType.PosTypeName}/{_userProfileRepository.GetOfficerProfileById(irp.ProfileId, AccessToken).PosLevel.PosLevelName}", // $"{irp.Profile.PositionType.Name}/{irp.Profile.PositionLevel.Name}", + instituteName = "", + instituteId = -1, + // divisionName = irp.Profile.OrganizationOrganization.Name, + // divisionId = irp.Profile.OrganizationOrganization.Id, + lastInsigniaName = "", + requestInsigniaLevel = irp.RequestInsignia.InsigniaType.Name, + requestInsigniaName = irp.RequestInsignia.Name, + requestQua = "", //irp.QualificationStatus, + requestDoc = "", //irp.DocumentStatus, + requestNote = "", //irp.Note, + requestSalary = irp.Salary, + matchingConditions = JsonConvert.DeserializeObject>(irp.MatchingConditions) + }) + .Where(x => !x.isApprove) + .OrderBy(y => y.profileId) + .ToList() + }) + .ToList() + .FirstOrDefault(); - // var period_data = (from p in _context.InsigniaPeriods.AsQueryable() - // where p.Id == period - // select new - // { - // periodName = p.Name, - // periodYear = p.Year, - // }).FirstOrDefault(); + var period_data = (from p in _context.InsigniaPeriods.AsQueryable() + where p.Id == period + select new + { + periodName = p.Name, + periodYear = p.Year, + }).FirstOrDefault(); - // return Success(new { passData = passData, failData = failData, period = period_data }); - return Success(); + return Success(new { passData = passData, failData = failData, period = period_data }); + //return Success(); } // select data to display } @@ -635,34 +643,34 @@ namespace BMA.EHR.Insignia.Service.Controllers #endregion - // #region " บันทึกหมายเหตุ " + #region " บันทึกหมายเหตุ " - // [HttpPut("note/{profileId}")] - // public async Task> SaveNote(Guid profileId, SaveRequsetNote items) - // { - // var id = await _repository.GetRequestId(items.PeriodId, items.OcId); - // var note = _context.InsigniaRequestProfiles.AsQueryable() - // .Where(d => d.Profile.Id == profileId && d.Request.Id == id).FirstOrDefault(); - // if (note != null) - // note.Note = items.Note; - // _context.SaveChanges(); - // return Success(); - // } + [HttpPut("note/{profileId}")] + public async Task> SaveNote(Guid profileId, SaveRequsetNote items) + { + var id = await _repository.GetRequestId(items.PeriodId, items.OcId); + var note = _context.InsigniaRequestProfiles.AsQueryable() + .Where(d => d.ProfileId == profileId && d.Request.Id == id).FirstOrDefault(); + //if (note != null) + // note.Note = items.Note; + _context.SaveChanges(); + return Success(); + } - // #endregion + #endregion - // #region " บันทึกรายชื่อครูในการขอยื่นเครื่องราชฯ เเต่ยังไม่ส่งไปยัง ผอ.โรงเรียน " + #region " บันทึกรายชื่อครูในการขอยื่นเครื่องราชฯ เเต่ยังไม่ส่งไปยัง ผอ.โรงเรียน " - // [HttpPut("approve/{ocId:length(36)}")] - // public async Task> SaveRequestList(Guid id, Guid ocId, InsigniaApproveRequest items) - // { - // var result = await _repository.GetInsigniaRequest(id, ocId); - // if (result != null) - // await _repository.SaveAprove(result.PeriodId, ocId, items); - // return Success(); - // } + [HttpPut("approve/{ocId:length(36)}")] + public async Task> SaveRequestList(Guid id, Guid ocId, InsigniaApproveRequest items) + { + var result = await _repository.GetInsigniaRequest(id, ocId); + if (result != null) + await _repository.SaveAprove(result.PeriodId, ocId); + return Success(); + } - // #endregion + #endregion /// /// เปลี่ยน status เป็น st3 การเจ้าหน้าที่อนุมัติ " @@ -845,48 +853,49 @@ namespace BMA.EHR.Insignia.Service.Controllers // #endregion - // #region " เปลี่ยน status สำหรับ ผอ.สำนัก " + #region " เปลี่ยน status สำหรับ ผอ.สำนัก " - // [HttpPost("status/director/approve/{ocId:length(36)}")] - // public async Task> ChangeStatusToSt5p(Guid id, Guid ocId) - // { - // var result = await _repository.GetInsigniaRequest(id, ocId); - // if (result == null) - // return Error(GlobalMessages.InsigniaRequestNotFound); - // var requestId = await _repository.GetRequestId(result.PeriodId, ocId); - // if (requestId == null) - // return Error(GlobalMessages.InsigniaRequestNotFound); - // var requestNew = await _context.InsigniaRequests.FirstOrDefaultAsync(i => i.Id == requestId); - // if (requestNew != null) - // { - // requestNew.RequestStatus = "st5p"; - // _context.SaveChanges(); - // return Success(); - // } - // else - // return Error(GlobalMessages.InsigniaRequestNotFound); - // } + [HttpPost("status/director/approve/{ocId:length(36)}")] + public async Task> ChangeStatusToSt5p(Guid id, Guid ocId) + { + var result = await _repository.GetInsigniaRequest(id, ocId); + if (result == null) + return Error(GlobalMessages.InsigniaRequestNotFound); + var requestId = await _repository.GetRequestId(result.PeriodId, ocId); + if (requestId == null) + return Error(GlobalMessages.InsigniaRequestNotFound); + var requestNew = await _context.InsigniaRequests.FirstOrDefaultAsync(i => i.Id == requestId); + if (requestNew != null) + { + requestNew.RequestStatus = "st5p"; + _context.SaveChanges(); + return Success(); + } + else + return Error(GlobalMessages.InsigniaRequestNotFound); + } - // [HttpPost("status/director/reject/{ocId:length(36)}")] - // public async Task> ChangeStatusToSt1(Guid id, Guid ocId) - // { - // var result = await _repository.GetInsigniaRequest(id, ocId); - // if (result == null) - // return Error(GlobalMessages.InsigniaRequestNotFound); - // var requestId = await _repository.GetRequestId(result.PeriodId, ocId); - // if (requestId == null) - // return Error(GlobalMessages.InsigniaRequestNotFound); - // var requestNew = await _context.InsigniaRequests.FirstOrDefaultAsync(i => i.Id == requestId); - // if (requestNew != null) - // { - // requestNew.RequestStatus = "st1"; - // _context.SaveChanges(); - // return Success(); - // } - // else - // return Error(GlobalMessages.InsigniaRequestNotFound); - // } - // #endregion + [HttpPost("status/director/reject/{ocId:length(36)}")] + public async Task> ChangeStatusToSt1(Guid id, Guid ocId) + { + var result = await _repository.GetInsigniaRequest(id, ocId); + if (result == null) + return Error(GlobalMessages.InsigniaRequestNotFound); + var requestId = await _repository.GetRequestId(result.PeriodId, ocId); + if (requestId == null) + return Error(GlobalMessages.InsigniaRequestNotFound); + var requestNew = await _context.InsigniaRequests.FirstOrDefaultAsync(i => i.Id == requestId); + if (requestNew != null) + { + requestNew.RequestStatus = "st1"; + _context.SaveChanges(); + return Success(); + } + else + return Error(GlobalMessages.InsigniaRequestNotFound); + } + + #endregion /// /// ย้ายขอมูลไปเป็น คนที่ไม่ยื่นขอ @@ -1061,7 +1070,9 @@ namespace BMA.EHR.Insignia.Service.Controllers var insigniaRequestProfile = await _context.InsigniaRequestProfiles.FirstOrDefaultAsync(x => x.ProfileId == profile.Id && x.Request.Period == insigniaPeriod); if (insigniaRequestProfile != null) return Error(GlobalMessages.InsigniaRequestProfileDupicate); - // var insigniaRequest = await _context.InsigniaRequests.FirstOrDefaultAsync(x => x.Period == insigniaPeriod); + + //var insigniaRequest = await _context.InsigniaRequests.FirstOrDefaultAsync(x => x.Period == insigniaPeriod); + //var _orgProfile = await _context.ProfilePositions // .Where(x => x.ProfileId == profile.Id) // .Where(x => x.OrganizationPosition != null) @@ -1071,7 +1082,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 == _org); + var insigniaRequest = await _context.InsigniaRequests.FirstOrDefaultAsync(x => x.Period == insigniaPeriod && x.OrganizationId == insigniaRequestProfile!.Request.OrganizationId); if (insigniaRequest == null) { //var orgProfile = await _context.ProfilePositions @@ -1086,43 +1097,46 @@ namespace BMA.EHR.Insignia.Service.Controllers //var org = await _context.Organizations // .FirstOrDefaultAsync(x => x.Id == orgProfile); - // var org = _userProfileRepository.GetOc(orgProfile.Value, 0, AccessToken); + var org = _userProfileRepository.GetOc(insigniaRequestProfile!.Request.OrganizationId, 0, AccessToken); - // if (org == null) - // return Error(GlobalMessages.OrganizationNotFound); - // insigniaRequest = new InsigniaRequest - // { - // Period = insigniaPeriod, - // OrganizationId = org.RootId.Value, - // RequestStatus = "st1", - // RequestNote = "", - // CreatedFullName = FullName ?? "System Administrator", - // CreatedUserId = UserId ?? "", - // CreatedAt = DateTime.Now, - // LastUpdateFullName = FullName ?? "System Administrator", - // LastUpdateUserId = UserId ?? "", - // LastUpdatedAt = DateTime.Now, - // }; + if (org == null) + return Error(GlobalMessages.OrganizationNotFound); + insigniaRequest = new InsigniaRequest + { + Period = insigniaPeriod, + OrganizationId = org!.RootId.Value, + RequestStatus = "st1", + RequestNote = "", + CreatedFullName = FullName ?? "System Administrator", + CreatedUserId = UserId ?? "", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; } - //await _context.AddAsync(new InsigniaRequestProfile - //{ - // Status = "PENDING", - // Profile = profile, - // RequestInsignia = insignia, - // Request = insigniaRequest, - // Reason = req.Reason, - // RequestDate = DateTime.Now, - // MatchingConditions = System.Text.Json.JsonSerializer.Serialize(new List()), // serialize to string - // Salary = 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, - //}); - //await _context.SaveChangesAsync(); + + await _context.AddAsync(new InsigniaRequestProfile + { + Status = "PENDING", + ProfileId = profile.Id, + RequestInsignia = insignia, + Request = insigniaRequest, + 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, + CreatedFullName = FullName ?? "System Administrator", + CreatedUserId = UserId ?? "", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }); + + await _context.SaveChangesAsync(); return Success(); } @@ -1265,26 +1279,26 @@ namespace BMA.EHR.Insignia.Service.Controllers return Success(); } - // /// - // /// รายชื่อผู้ได้รับเครื่องราชส่งข้อมูลไปบันทึกผลได้รับเครื่องราช(อัพเดทstatus) - // /// - // /// Id รอบการยื่นขอ - // /// - // /// - // /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง - // /// ไม่ได้ Login เข้าระบบ - // /// เมื่อเกิดข้อผิดพลาดในการทำงาน - // [HttpGet("send/note/{insigniaPeriodId:length(36)}")] - // public async Task> SendPeriodToNoteUpdateStatus(Guid insigniaPeriodId) - // { - // var insigniaPeriod = await _context.InsigniaPeriods - // .FirstOrDefaultAsync(x => x.Id == insigniaPeriodId); - // if (insigniaPeriod == null) - // return Error(GlobalMessages.InsigniaRequestNotFound); - // insigniaPeriod.IsLock = true; - // await _context.SaveChangesAsync(); - // return Success(); - // } + /// + /// รายชื่อผู้ได้รับเครื่องราชส่งข้อมูลไปบันทึกผลได้รับเครื่องราช(อัพเดทstatus) + /// + /// Id รอบการยื่นขอ + /// + /// + /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง + /// ไม่ได้ Login เข้าระบบ + /// เมื่อเกิดข้อผิดพลาดในการทำงาน + [HttpGet("send/note/{insigniaPeriodId:length(36)}")] + public async Task> SendPeriodToNoteUpdateStatus(Guid insigniaPeriodId) + { + var insigniaPeriod = await _context.InsigniaPeriods + .FirstOrDefaultAsync(x => x.Id == insigniaPeriodId); + if (insigniaPeriod == null) + return Error(GlobalMessages.InsigniaRequestNotFound); + insigniaPeriod.IsLock = true; + await _context.SaveChangesAsync(); + return Success(); + } /// /// list รอบบันทึกผลการได้รับพระราชทานเครื่องราชอิสริยสภรณ์/การจ่ายใบกำกับ @@ -1517,16 +1531,18 @@ namespace BMA.EHR.Insignia.Service.Controllers [HttpPut("note/{insigniaNoteId:length(36)}")] public async Task> AddNoteProfile([FromBody] InsigniaNoteRequest req, Guid insigniaNoteId) { - var profile = await _context.Profiles - .Include(x => x.Salaries) - .FirstOrDefaultAsync(x => x.CitizenId == req.CitizanId); + var profile = _userProfileRepository.GetOfficerProfileByCitizenId(req.CitizanId, AccessToken); + + if (profile == null) return Error(GlobalMessages.DataNotFound); + var insignia = await _context.Insignias .Include(x => x.InsigniaType) .FirstOrDefaultAsync(x => x.Id == req.InsigniaId); if (insignia == null) return Error(GlobalMessages.InsigniaNotFound); + var insigniaNote = await _context.InsigniaNotes .Include(x => x.InsigniaNoteProfiles) //.ThenInclude(x => x.Profile) @@ -1534,118 +1550,120 @@ namespace BMA.EHR.Insignia.Service.Controllers if (insigniaNote == null) return Error(GlobalMessages.InsigniaRequestNotFound); - //var profileInsignia = insigniaNote.InsigniaNoteProfiles.FirstOrDefault(x => x.Profile.CitizenId == req.CitizanId); - //if (profileInsignia == null) - //{ - // var insigniaNoteProfile = new InsigniaNoteProfile - // { - // Salary = profile.Salaries.Count() == 0 ? null : profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault().Amount, - // IsApprove = true, - // Status = "PENDING", - // Profile = profile, - // Issue = req.Issue, - // Number = req.Number, - // DateReceive = req.DateReceive, - // Date = req.Date, - // VolumeNo = req.VolumeNo, - // Section = req.Section, - // Page = req.Page, - // No = req.No, - // DatePayment = req.DatePayment, - // TypePayment = req.TypePayment, - // Address = req.Address, - // RequestInsignia = insignia, - // OrganizationOrganizationReceive = req.OrganizationOrganizationReceive, - // OrganizationOrganizationSend = req.OrganizationOrganizationSend, - // InsigniaNote = insigniaNote, - // CreatedFullName = FullName ?? "System Administrator", - // CreatedUserId = UserId ?? "", - // CreatedAt = DateTime.Now, - // LastUpdateFullName = FullName ?? "System Administrator", - // LastUpdateUserId = UserId ?? "", - // LastUpdatedAt = DateTime.Now, - // }; - // if (req.DateReceive != null && req.Date != null) - // { - // insigniaNoteProfile.Status = "DONE"; - // await _context.ProfileInsignias.AddAsync(new ProfileInsignia - // { - // Year = insigniaNote.Year, - // No = req.No, - // Issue = req.VolumeNo, - // VolumeNo = req.VolumeNo, - // // Volume = req.Volume, - // Section = req.Section, - // Page = req.Page, - // DateAnnounce = req.Date, - // ReceiveDate = req.DateReceive, - // InsigniaType = insignia.InsigniaType == null ? null : insignia.InsigniaType.Name, - // Insignia = insignia, - // // RefCommandNo = req.RefCommandNo, - // // RefCommandDate = req.RefCommandDate, - // Profile = profile, - // CreatedFullName = FullName ?? "System Administrator", - // CreatedUserId = UserId ?? "", - // CreatedAt = DateTime.Now, - // LastUpdateFullName = FullName ?? "System Administrator", - // LastUpdateUserId = UserId ?? "", - // LastUpdatedAt = DateTime.Now, - // }); - // } - // await _context.InsigniaNoteProfiles.AddAsync(insigniaNoteProfile); - //} - //else - //{ - // profileInsignia.DatePayment = req.DatePayment; - // profileInsignia.TypePayment = req.TypePayment; - // profileInsignia.Address = req.Address; - // if (profileInsignia.Status != "DONE") - // { - // profileInsignia.Issue = req.Issue; - // profileInsignia.Number = req.Number; - // profileInsignia.DateReceive = req.DateReceive; - // profileInsignia.Date = req.Date; - // profileInsignia.VolumeNo = req.VolumeNo; - // profileInsignia.Section = req.Section; - // profileInsignia.Page = req.Page; - // profileInsignia.No = req.No; - // // profileInsignia.DatePayment = req.DatePayment; - // // profileInsignia.TypePayment = req.TypePayment; - // // profileInsignia.Address = req.Address; - // profileInsignia.RequestInsignia = insignia; - // profileInsignia.LastUpdateFullName = FullName ?? "System Administrator"; - // profileInsignia.LastUpdateUserId = UserId ?? ""; - // profileInsignia.LastUpdatedAt = DateTime.Now; - // if (req.DateReceive != null && req.Date != null) - // { - // profileInsignia.Status = "DONE"; - // await _context.ProfileInsignias.AddAsync(new ProfileInsignia - // { - // Year = insigniaNote.Year, - // No = req.No, - // Issue = req.VolumeNo, - // VolumeNo = req.VolumeNo, - // // Volume = req.Volume, - // Section = req.Section, - // Page = req.Page, - // DateAnnounce = req.Date, - // ReceiveDate = req.DateReceive, - // InsigniaType = insignia.InsigniaType == null ? null : insignia.InsigniaType.Name, - // Insignia = insignia, - // // RefCommandNo = req.RefCommandNo, - // // RefCommandDate = req.RefCommandDate, - // ProfileId = profile.Id, - // CreatedFullName = FullName ?? "System Administrator", - // CreatedUserId = UserId ?? "", - // CreatedAt = DateTime.Now, - // LastUpdateFullName = FullName ?? "System Administrator", - // LastUpdateUserId = UserId ?? "", - // LastUpdatedAt = DateTime.Now, - // }); - // } - // } - //} - //await _context.SaveChangesAsync(); + var profileInsignia = insigniaNote.InsigniaNoteProfiles.FirstOrDefault(x => x.ProfileId == profile.Id); + + if (profileInsignia == null) + { + var insigniaNoteProfile = new InsigniaNoteProfile + { + Salary = profile.ProfileSalary == null || profile.ProfileSalary.Count() == 0 ? null : profile.ProfileSalary.OrderByDescending(x => x.Order).FirstOrDefault().Amount, + IsApprove = true, + Status = "PENDING", + ProfileId = profile.Id, + Issue = req.Issue, + Number = req.Number, + DateReceive = req.DateReceive, + Date = req.Date, + VolumeNo = req.VolumeNo, + Section = req.Section, + Page = req.Page, + No = req.No, + DatePayment = req.DatePayment, + TypePayment = req.TypePayment, + Address = req.Address, + RequestInsignia = insignia, + OrganizationOrganizationReceive = req.OrganizationOrganizationReceive, + OrganizationOrganizationSend = req.OrganizationOrganizationSend, + InsigniaNote = insigniaNote, + CreatedFullName = FullName ?? "System Administrator", + CreatedUserId = UserId ?? "", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }; + if (req.DateReceive != null && req.Date != null) + { + insigniaNoteProfile.Status = "DONE"; + await _context.ProfileInsignias.AddAsync(new ProfileInsignia + { + Year = insigniaNote.Year, + No = req.No, + Issue = req.VolumeNo, + VolumeNo = req.VolumeNo, + // Volume = req.Volume, + Section = req.Section, + Page = req.Page, + DateAnnounce = req.Date, + ReceiveDate = req.DateReceive, + InsigniaType = insignia.InsigniaType == null ? null : insignia.InsigniaType.Name, + Insignia = insignia, + // RefCommandNo = req.RefCommandNo, + // RefCommandDate = req.RefCommandDate, + ProfileId = profile.Id, + CreatedFullName = FullName ?? "System Administrator", + CreatedUserId = UserId ?? "", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }); + } + await _context.InsigniaNoteProfiles.AddAsync(insigniaNoteProfile); + } + else + { + profileInsignia.DatePayment = req.DatePayment; + profileInsignia.TypePayment = req.TypePayment; + profileInsignia.Address = req.Address; + if (profileInsignia.Status != "DONE") + { + profileInsignia.Issue = req.Issue; + profileInsignia.Number = req.Number; + profileInsignia.DateReceive = req.DateReceive; + profileInsignia.Date = req.Date; + profileInsignia.VolumeNo = req.VolumeNo; + profileInsignia.Section = req.Section; + profileInsignia.Page = req.Page; + profileInsignia.No = req.No; + // profileInsignia.DatePayment = req.DatePayment; + // profileInsignia.TypePayment = req.TypePayment; + // profileInsignia.Address = req.Address; + profileInsignia.RequestInsignia = insignia; + profileInsignia.LastUpdateFullName = FullName ?? "System Administrator"; + profileInsignia.LastUpdateUserId = UserId ?? ""; + profileInsignia.LastUpdatedAt = DateTime.Now; + if (req.DateReceive != null && req.Date != null) + { + profileInsignia.Status = "DONE"; + await _context.ProfileInsignias.AddAsync(new ProfileInsignia + { + Year = insigniaNote.Year, + No = req.No, + Issue = req.VolumeNo, + VolumeNo = req.VolumeNo, + //Volume = req.Volume, + Section = req.Section, + Page = req.Page, + DateAnnounce = req.Date, + ReceiveDate = req.DateReceive, + InsigniaType = insignia.InsigniaType == null ? null : insignia.InsigniaType.Name, + Insignia = insignia, + // RefCommandNo = req.RefCommandNo, + // RefCommandDate = req.RefCommandDate, + ProfileId = profile.Id, + CreatedFullName = FullName ?? "System Administrator", + CreatedUserId = UserId ?? "", + CreatedAt = DateTime.Now, + LastUpdateFullName = FullName ?? "System Administrator", + LastUpdateUserId = UserId ?? "", + LastUpdatedAt = DateTime.Now, + }); + } + } + } + + await _context.SaveChangesAsync(); return Success(); } From 4cc64ab2c03e1895c5948b2ef699615d4a984d0c Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sun, 30 Jun 2024 17:21:52 +0700 Subject: [PATCH 5/6] =?UTF-8?q?Add=20fix=20=E0=B9=83=E0=B8=AB=E0=B9=89=20R?= =?UTF-8?q?un=20Insignia=20=E0=B9=81=E0=B8=84=E0=B9=88=E0=B9=80=E0=B8=82?= =?UTF-8?q?=E0=B8=95=E0=B8=9E=E0=B8=A3=E0=B8=B0=E0=B8=99=E0=B8=84=E0=B8=A3?= =?UTF-8?q?=E0=B9=80=E0=B8=97=E0=B9=88=E0=B8=B2=E0=B8=99=E0=B8=B1=E0=B9=89?= =?UTF-8?q?=E0=B8=99=20(e8493cd1-d371-402e-add6-566e68d5d1b3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/InsigniaRequestController.cs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs b/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs index 5fb38fae..29c380f7 100644 --- a/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs +++ b/BMA.EHR.Insignia.Service/Controllers/InsigniaRequestController.cs @@ -624,6 +624,10 @@ namespace BMA.EHR.Insignia.Service.Controllers 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) { From 451806fd0094db7246eefe2f362d5f6c93263b2f Mon Sep 17 00:00:00 2001 From: Suphonchai Phoonsawat Date: Sun, 30 Jun 2024 19:13:36 +0700 Subject: [PATCH 6/6] =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A=20api?= =?UTF-8?q?=20=E0=B9=80=E0=B8=9E=E0=B8=B4=E0=B9=88=E0=B8=A1=E0=B8=84?= =?UTF-8?q?=E0=B8=99=E0=B9=80=E0=B8=82=E0=B9=89=E0=B8=B2=E0=B8=84=E0=B8=B3?= =?UTF-8?q?=E0=B8=82=E0=B8=AD=E0=B9=80=E0=B8=84=E0=B8=A3=E0=B8=B7=E0=B8=AD?= =?UTF-8?q?=E0=B8=87=E0=B8=A3=E0=B8=B2=E0=B8=8A=20=E0=B9=80=E0=B8=9E?= =?UTF-8?q?=E0=B8=B4=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