diff --git a/Controllers/OrganizationReportController.cs b/Controllers/OrganizationReportController.cs
index e7310c4..6c071b2 100644
--- a/Controllers/OrganizationReportController.cs
+++ b/Controllers/OrganizationReportController.cs
@@ -108,7 +108,7 @@ namespace BMA.EHR.Report.Service.Controllers
});
}
- var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList();
+ //var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList();
var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Report", "Organization", $"rptAccount1.trdp");
ReportPackager reportPackager = new ReportPackager();
@@ -118,7 +118,7 @@ namespace BMA.EHR.Report.Service.Controllers
report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream);
}
- report.DataSource = items;
+ report.DataSource = result_data;
System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable();
InstanceReportSource instanceReportSource = new InstanceReportSource()
@@ -130,7 +130,7 @@ namespace BMA.EHR.Report.Service.Controllers
ReportProcessor reportProcessor = new ReportProcessor(_configuration);
RenderingResult result = reportProcessor.RenderReport("PDF", instanceReportSource, deviceInfo);
- var first_record = items.FirstOrDefault();
+ var first_record = result_data.FirstOrDefault();
var content = result.DocumentBytes;
return File(content, "application/pdf", $"รายงานบัญชี1_{first_record.RootOcName}_.pdf");
@@ -141,17 +141,18 @@ namespace BMA.EHR.Report.Service.Controllers
}
}
- ///
- /// รายงานบัญชี 2
- ///
- /// รหัสสำนัก
- ///
- /// เมื่อแสดงรายงานสำเร็จ
- /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
- /// ไม่ได้ Login เข้าระบบ
- /// เมื่อเกิดข้อผิดพลาดในการทำงาน
- [HttpGet("account2/{id:length(36)}")]
+ ///
+ /// รายงานบัญชี 2
+ ///
+ /// รหัสสำนัก
+ ///
+ /// เมื่อแสดงรายงานสำเร็จ
+ /// ค่าตัวแปรที่ส่งมาไม่ถูกต้อง
+ /// ไม่ได้ Login เข้าระบบ
+ /// เมื่อเกิดข้อผิดพลาดในการทำงาน
+
+ [HttpGet("account2/{id:length(36)}")]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status400BadRequest)]
[ProducesResponseType(StatusCodes.Status401Unauthorized)]
@@ -211,7 +212,7 @@ namespace BMA.EHR.Report.Service.Controllers
}
- var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList();
+ //var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList();
var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Report", "Organization", $"rptAccount2.trdp");
ReportPackager reportPackager = new ReportPackager();
@@ -221,7 +222,7 @@ namespace BMA.EHR.Report.Service.Controllers
report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream);
}
- report.DataSource = items;
+ report.DataSource = result_data;
System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable();
InstanceReportSource instanceReportSource = new InstanceReportSource()
@@ -233,7 +234,7 @@ namespace BMA.EHR.Report.Service.Controllers
ReportProcessor reportProcessor = new ReportProcessor(_configuration);
RenderingResult result = reportProcessor.RenderReport("PDF", instanceReportSource, deviceInfo);
- var first_record = items.FirstOrDefault();
+ var first_record = result_data.FirstOrDefault();
var content = result.DocumentBytes;
return File(content, "application/pdf", $"รายงานบัญชี2_{first_record.RootOcName}_.pdf");
@@ -315,7 +316,7 @@ namespace BMA.EHR.Report.Service.Controllers
}
- var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList();
+ //var items = result_data.OrderBy(x => x.GovernmentCode).ThenBy(x => x.PositionNumberInt).ToList();
var rptFile = Path.Combine(_hostingEnvironment.ContentRootPath, "Report", "Organization", $"rptAccount3.trdp");
ReportPackager reportPackager = new ReportPackager();
@@ -325,7 +326,7 @@ namespace BMA.EHR.Report.Service.Controllers
report = (Telerik.Reporting.Report)reportPackager.UnpackageDocument(sourceStream);
}
- report.DataSource = items;
+ report.DataSource = result_data;
System.Collections.Hashtable deviceInfo = new System.Collections.Hashtable();
InstanceReportSource instanceReportSource = new InstanceReportSource()
@@ -337,7 +338,7 @@ namespace BMA.EHR.Report.Service.Controllers
ReportProcessor reportProcessor = new ReportProcessor(_configuration);
RenderingResult result = reportProcessor.RenderReport("PDF", instanceReportSource, deviceInfo);
- var first_record = items.FirstOrDefault();
+ var first_record = result_data.FirstOrDefault();
var content = result.DocumentBytes;
return File(content, "application/pdf", $"รายงานบัญชี3_{first_record.RootOcName}_.pdf");
diff --git a/Models/HR/ProfileEducation.cs b/Models/HR/ProfileEducation.cs
index cc93425..b2bd96c 100644
--- a/Models/HR/ProfileEducation.cs
+++ b/Models/HR/ProfileEducation.cs
@@ -40,5 +40,7 @@ namespace BMA.EHR.Profile.Service.Models.HR
public virtual List ProfileEducationHistorys { get; set; } = new List();
public virtual Profile? Profile { get; set; }
+ public virtual Guid? ProfileId { get; set; }
+
}
}
diff --git a/Models/MetaData/PositionLevel.cs b/Models/MetaData/PositionLevel.cs
index 54ca1a5..e86140a 100644
--- a/Models/MetaData/PositionLevel.cs
+++ b/Models/MetaData/PositionLevel.cs
@@ -12,7 +12,10 @@ namespace BMA.EHR.MetaData.Service.Models
[Required, MaxLength(100), Column(Order = 2), Comment("ชื่อย่อระดับตำแหน่ง")]
public string ShortName { get; set; } = string.Empty;
- [Column(Order = 3), Comment("สถานะการใช้งาน")]
+ [Column(Order = 3), Comment("ลำดับชั้นของระดับตำแหน่ง")]
+ public int Level { get; set; } = 0;
+
+ [Column(Order = 4), Comment("สถานะการใช้งาน")]
public bool IsActive { get; set; } = true;
}
}
diff --git a/Report/Organization/rptAccount2.trdp b/Report/Organization/rptAccount2.trdp
index fc447cc..072dc4d 100644
Binary files a/Report/Organization/rptAccount2.trdp and b/Report/Organization/rptAccount2.trdp differ
diff --git a/Report/Organization/rptAccount3.trdp b/Report/Organization/rptAccount3.trdp
index 892875c..ecf9eb3 100644
Binary files a/Report/Organization/rptAccount3.trdp and b/Report/Organization/rptAccount3.trdp differ
diff --git a/Services/OrganizationReportService.cs b/Services/OrganizationReportService.cs
index ff311f4..4f3401c 100644
--- a/Services/OrganizationReportService.cs
+++ b/Services/OrganizationReportService.cs
@@ -1,8 +1,10 @@
using Amazon.Internal;
+using BMA.EHR.Core;
using BMA.EHR.Extensions;
using BMA.EHR.Organization.Service.Extensions;
using BMA.EHR.Profile.Service.Services;
using BMA.EHR.Report.Service.Data;
+using Microsoft.CodeAnalysis.CSharp;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage.ValueConversion.Internal;
using System.Linq;
@@ -10,600 +12,887 @@ using System.Security.Cryptography.X509Certificates;
namespace BMA.EHR.Report.Service.Services
{
- public class OrganizationReportService
- {
- #region " Fields "
+ public class OrganizationReportService
+ {
+ #region " Fields "
- private readonly EHRDbContext _context;
- private readonly EHRDbContext _applicationDbContext;
- private readonly ProfileService _profileService;
+ private readonly EHRDbContext _context;
+ private readonly EHRDbContext _applicationDbContext;
+ private readonly ProfileService _profileService;
- #endregion
+ #endregion
- #region " Constructor and Destructor "
+ #region " Constructor and Destructor "
- public OrganizationReportService(EHRDbContext context,
- EHRDbContext applicationDbContext,
- ProfileService profileService)
- {
- _context = context;
- _applicationDbContext = applicationDbContext;
- _profileService = profileService;
- }
+ public OrganizationReportService(EHRDbContext context,
+ EHRDbContext applicationDbContext,
+ ProfileService profileService)
+ {
+ _context = context;
+ _applicationDbContext = applicationDbContext;
+ _profileService = profileService;
+ }
- #endregion
+ #endregion
- #region " Methods "
+ #region " Methods "
- #region " Report Query "
+ #region " Private "
- public async Task?> GetOrganizationTypes(string type)
- {
- var Organizations = await _context.Organizations.ToListAsync();
+ private string GetShortNameFromPosNo(string posno)
+ {
+ if (string.IsNullOrEmpty(posno)) return "";
+ var posArray = posno.Split('.');
+ var ret = string.Empty;
- var OrganizationOrganizations = await _context.OrganizationOrganizations.ToListAsync();
- var OrganizationTypes = await _context.OrganizationTypes.FirstOrDefaultAsync(x => x.Name == type);
+ for (var i = 0; i < posArray.Length - 1; i++)
+ {
+ ret += $"{posArray[i]}.";
+ }
- if (OrganizationTypes == null)
- {
- throw new Exception("Invalid Organization type.");
- }
+ return ret;
+ }
- var dataType = (from o in Organizations
- join os in OrganizationOrganizations on o.OrganizationOrganizationId equals os.Id into os1
- from os in os1.DefaultIfEmpty()
- where o.OrganizationTypeId == OrganizationTypes.Id && os != null
- orderby o.OrganizationOrder
- select new
- {
- organizationId = o.Id,
- organizationName = os.Name
- }).ToList();
+ private int GetPosnoIntFromPosNo(string posno)
+ {
+ if (string.IsNullOrEmpty(posno)) return 999;
+ var posArray = posno.Split('.');
- return dataType;
- }
+ return Convert.ToInt32(posArray.Last());
+ }
- public async Task> GetReport1Query(Guid ocId)
- {
- var ocIdList = _profileService.GetAllIdByRoot(ocId);
- var RootOcName = _profileService.GetOrganizationNameFullPath(ocId, false, false);
+ private Guid GetOcId(Guid shortNameId, Guid nameId)
+ {
+ var data = _context.Organizations.AsNoTracking()
+ .FirstOrDefault(x => x.OrganizationShortNameId == shortNameId &&
+ x.OrganizationOrganizationId == nameId);
+ if (data == null) return Guid.Empty;
+ else return data.Id;
+ }
- var organizationPositions = await _context.OrganizationPositions.ToListAsync();
- var positionMasters = await _context.PositionMasters.ToListAsync();
- var organizations = await _context.Organizations.ToListAsync();
- var organizationOrganizations = await _applicationDbContext.OrganizationOrganizations.ToListAsync();
- var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync();
- var positionNumbers = await _context.PositionNumbers.ToListAsync();
- var executivePositions = await _applicationDbContext.PositionExecutives.ToListAsync();
- var executivePositionSide = await _applicationDbContext.PositionExecutiveSides.ToListAsync();
- var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync();
- var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync();
- var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync();
+ private string GetCitizenId(Guid profileId)
+ {
+ var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId);
- var data = (from op in organizationPositions
- join pm in positionMasters on op.PositionMasterId equals pm.Id
- join oc in organizations on op.OrganizationId equals oc.Id
- join oc_n in organizationOrganizations on oc.OrganizationOrganizationId equals oc_n.Id
- join sn in organizationShortNames on oc.OrganizationShortNameId equals sn.Id
- join pn in positionNumbers on op.PositionNumberId equals pn.Id
- join pp in positionPaths on pm.PositionPathId equals pp.Id
- join pps in positionPathSides on pm.PositionPathSideId equals pps.Id into pp_pps_join
- from pp_pps in pp_pps_join.DefaultIfEmpty()
- join ex_p in executivePositions on pm.PositionExecutiveId equals ex_p.Id into pm_exp_join
- from pm_exp in pm_exp_join.DefaultIfEmpty()
- join ex_p_s in executivePositionSide on pm.PositionExecutiveSideId equals ex_p_s.Id into pm_exp_s_join
- from pm_exp_s in pm_exp_s_join.DefaultIfEmpty()
- join pt in positionTypes on pm.PositionTypeId equals pt.Id
- where ocIdList.Contains((Guid)op.OrganizationId)
- select new Account1ResultItem
- {
- Id = op.Id,
- RootOcId = ocId,
- RootOcName = RootOcName,
- OcId = op.OrganizationId.Value,
- OcFullName = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName),
- OcName = _profileService.GetOrganizationName(op.OrganizationId.Value),
- ShortName = sn.Name,
- PositionNumber = pn.Name,
- PositionLevel = _profileService.GetPositionLevel(pm.Id),
- PositionName = $"{pp.Name}\r\n",
- PositionSide = pm.PositionPathSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionPathSideObject).GetNameList(),
- PositionExecutive = pm_exp == null ? "" : $"{pm_exp.Name}\r\n",
- PositionExecutiveSide = pm.PositionExecutiveSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionExecutiveSideObject).GetNameList(),
- Remark = op.PositionUserNote,
- OcOrder = oc.OrganizationOrder.Value,
- PositionType = pt.Name,
- IsDirector = pm.IsDirector.Value ? 0 : 1,
- GovernmentCode = sn.GovernmentCode == null || sn.GovernmentCode == "" ? sn.AgencyCode : sn.GovernmentCode
- }).ToList();
+ return data == null ? "" : data.CitizenId;
+ }
- return data;
- }
+ private string GetPrefix(Guid profileId)
+ {
+ var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId);
+ if (data == null) return "";
- private string GetShortNameFromPosNo(string posno)
- {
- if (string.IsNullOrEmpty(posno)) return "";
- var posArray = posno.Split('.');
- var ret = string.Empty;
+ var prefix = _context.Prefixes.AsNoTracking().FirstOrDefault(x => x.Id == data.PrefixId);
- for (var i = 0; i < posArray.Length - 1; i++)
- {
- ret += $"{posArray[i]}.";
- }
+ return prefix == null ? "" : prefix.Name;
+ }
- return ret;
- }
+ private string GetFirstName(Guid profileId)
+ {
+ var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId);
- private int GetPosnoIntFromPosNo(string posno)
- {
- if (string.IsNullOrEmpty(posno)) return 999;
- var posArray = posno.Split('.');
+ return data == null ? "" : data.FirstName;
+ }
- return Convert.ToInt32(posArray.Last());
- }
+ private string GetLastName(Guid profileId)
+ {
+ var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId);
- private Guid GetOcId(Guid shortNameId, Guid nameId)
- {
- var data = _context.Organizations.AsNoTracking()
- .FirstOrDefault(x => x.OrganizationShortNameId == shortNameId &&
- x.OrganizationOrganizationId == nameId);
- if (data == null) return Guid.Empty;
- else return data.Id;
- }
+ return data == null ? "" : data.LastName;
+ }
- private string GetCitizenId(Guid profileId)
- {
- var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId);
+ private async Task> GetAllIdByRootAsync(Guid id)
+ {
+ try
+ {
+ var ret = new List();
- return data == null ? "" : data.CitizenId;
- }
- private string GetPrefix(Guid profileId)
- {
- var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId);
- if (data == null) return "";
+ var oc = await _context.Organizations.FirstOrDefaultAsync(x => x.Id == id);
+ if (oc == null)
+ throw new Exception(GlobalMessages.DataNotFound);
+ ret.Add(oc.Id);
- var prefix = _context.Prefixes.AsNoTracking().FirstOrDefault(x => x.Id == data.PrefixId);
+ var child = await _context.Organizations.AsQueryable().Where(x => x.ParentId == id).ToListAsync();
+ if (child.Any())
+ {
+ foreach (var item in child)
+ {
+ ret.AddRange(await GetAllIdByRootAsync(item.Id));
+ }
+ }
- return prefix == null ? "" : prefix.Name;
- }
+ return ret;
+ }
+ catch
+ {
+ throw;
+ }
+ }
- private string GetFirstName(Guid profileId)
- {
- var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId);
+ private async Task> GetAllOcItemByRootAsync(Guid id, int level = 1)
+ {
+ try
+ {
+ var ret = new List();
- return data == null ? "" : data.FirstName;
- }
+ var oc = await _context.Organizations.FirstOrDefaultAsync(x => x.Id == id);
+ if (oc == null)
+ throw new Exception(GlobalMessages.DataNotFound);
+ var thisLevel = (level * 10) + oc.OrganizationOrder.Value;
+ ret.Add(new OrganizationItem { Id = oc.Id, Order = thisLevel });
- private string GetLastName(Guid profileId)
- {
- var data = _context.Profiles.AsNoTracking().FirstOrDefault(x => x.Id == profileId);
+ var child = await _context.Organizations.AsQueryable().Where(x => x.ParentId == id).ToListAsync();
+ if (child.Any())
+ {
+ foreach (var item in child)
+ {
+ ret.AddRange(await GetAllOcItemByRootAsync(item.Id, thisLevel));
+ }
+ }
- return data == null ? "" : data.LastName;
- }
+ return ret;
+ }
+ catch
+ {
+ throw;
+ }
+ }
+
+ private async Task GetOrgIdByOrgPositionId(Guid orgPositionId)
+ {
+ var data = await _applicationDbContext.OrganizationPositions.FirstOrDefaultAsync(x => x.Id == orgPositionId);
+
+ return data is null ? Guid.Empty : data.OrganizationId.Value;
+ }
+
+ #endregion
- public async Task> GetReport2Query(Guid ocId)
- {
- try
- {
+ #region " Report Query "
+
+ public async Task?> GetOrganizationTypes(string type)
+ {
+ var Organizations = await _context.Organizations.ToListAsync();
+
+ var OrganizationOrganizations = await _context.OrganizationOrganizations.ToListAsync();
+ var OrganizationTypes = await _context.OrganizationTypes.FirstOrDefaultAsync(x => x.Name == type);
+
+ if (OrganizationTypes == null)
+ {
+ throw new Exception("Invalid Organization type.");
+ }
+
+ var dataType = (from o in Organizations
+ join os in OrganizationOrganizations on o.OrganizationOrganizationId equals os.Id into os1
+ from os in os1.DefaultIfEmpty()
+ where o.OrganizationTypeId == OrganizationTypes.Id && os != null
+ orderby o.OrganizationOrder
+ select new
+ {
+ organizationId = o.Id,
+ organizationName = os.Name
+ }).ToList();
+
+ return dataType;
+ }
+
+ public async Task> GetReport1Query(Guid ocId)
+ {
+ var ocIdList = _profileService.GetAllIdByRoot(ocId);
+ var RootOcName = _profileService.GetOrganizationNameFullPath(ocId, false, false);
+
+ var orgWithOrder = new List();
+ orgWithOrder = await GetAllOcItemByRootAsync(ocId);
+
+ var organizationPositions = await _context.OrganizationPositions.ToListAsync();
+ var positionMasters = await _context.PositionMasters.ToListAsync();
+ var organizations = await _context.Organizations.ToListAsync();
+ var organizationOrganizations = await _applicationDbContext.OrganizationOrganizations.ToListAsync();
+ var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync();
+ var positionNumbers = await _context.PositionNumbers.ToListAsync();
+ var executivePositions = await _applicationDbContext.PositionExecutives.ToListAsync();
+ var executivePositionSide = await _applicationDbContext.PositionExecutiveSides.ToListAsync();
+ var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync();
+ var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync();
+ var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync();
+
+ var data = (from op in organizationPositions
+ join pm in positionMasters on op.PositionMasterId equals pm.Id
+ join oc in organizations on op.OrganizationId equals oc.Id
+ join oc_n in organizationOrganizations on oc.OrganizationOrganizationId equals oc_n.Id
+ join sn in organizationShortNames on oc.OrganizationShortNameId equals sn.Id
+ join pn in positionNumbers on op.PositionNumberId equals pn.Id
+ join pp in positionPaths on pm.PositionPathId equals pp.Id
+ join pps in positionPathSides on pm.PositionPathSideId equals pps.Id into pp_pps_join
+ from pp_pps in pp_pps_join.DefaultIfEmpty()
+ join ex_p in executivePositions on pm.PositionExecutiveId equals ex_p.Id into pm_exp_join
+ from pm_exp in pm_exp_join.DefaultIfEmpty()
+ join ex_p_s in executivePositionSide on pm.PositionExecutiveSideId equals ex_p_s.Id into pm_exp_s_join
+ from pm_exp_s in pm_exp_s_join.DefaultIfEmpty()
+ join pt in positionTypes on pm.PositionTypeId equals pt.Id
+
+ join orgOrder in orgWithOrder on op.OrganizationId equals orgOrder.Id
- var ocIdList = _profileService.GetAllIdByRoot(ocId);
- var RootOcName = _profileService.GetOrganizationNameFullPath(ocId, false, false);
+ where ocIdList.Contains((Guid)op.OrganizationId)
+ select new Account1ResultItem
+ {
+ Id = op.Id,
+ RootOcId = ocId,
+ RootOcName = RootOcName,
+ OcId = op.OrganizationId.Value,
+ OcFullName = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName),
+ OcName = _profileService.GetOrganizationName(op.OrganizationId.Value),
+ ShortName = sn.Name,
+ PositionNumber = pn.Name,
+ PositionLevel = _profileService.GetPositionLevel(pm.Id),
+ PositionName = $"{pp.Name}\r\n",
+ PositionSide = pm.PositionPathSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionPathSideObject).GetNameList(),
+ PositionExecutive = pm_exp == null ? "" : $"{pm_exp.Name}\r\n",
+ PositionExecutiveSide = pm.PositionExecutiveSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionExecutiveSideObject).GetNameList(),
+ Remark = op.PositionUserNote,
+ OcOrder = orgOrder.Order,
+ PositionType = pt.Name,
+ IsDirector = pm.IsDirector.Value ? 0 : 1,
+ GovernmentCode = sn.GovernmentCode == null || sn.GovernmentCode == "" ? sn.AgencyCode : sn.GovernmentCode
+ }).ToList()
+ .OrderBy(x => x.OcOrder).ThenBy(x => GetPosnoIntFromPosNo(x.PositionNumber))
+ .ToList();
- var organizationPositions = await _context.OrganizationPositions.ToListAsync();
- var positionMasters = await _context.PositionMasters.ToListAsync();
- var organizations = await _context.Organizations.ToListAsync();
- var organizationOrganizations = await _applicationDbContext.OrganizationOrganizations.ToListAsync();
- var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync();
- var positionNumbers = await _context.PositionNumbers.ToListAsync();
- var executivePositions = await _applicationDbContext.PositionExecutives.ToListAsync();
- var executivePositionSide = await _applicationDbContext.PositionExecutiveSides.ToListAsync();
- var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync();
- var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync();
- var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync();
- var profilePositions = await _context.ProfilePositions.ToListAsync();
- var prefixes = await _context.Prefixes.ToListAsync();
- var profiles = await _context.Profiles.ToListAsync();
- var report2 = await _context.Report2s.ToListAsync();
+ return data;
+ }
- var profile_data = (from p in _context.Profiles
- join pf in _context.Prefixes on p.PrefixId equals pf.Id
- select new
- {
- p.Id,
- p.CitizenId,
- Prefix = pf.Name,
- p.FirstName,
- p.LastName,
- p.PositionLine,
- p.Position,
- p.PositionPathSide,
- p.PositionType,
- p.PositionLevel,
- p.PositionExecutive,
- p.PositionExecutiveSide,
- p.PosNo,
- p.OrganizationShortName,
- Degree = p.Educations == null || p.Educations.Count == 0 ? "" : $"{p.Educations.OrderBy(x => x.StartDate).Last().Degree}\r\n({p.Educations.OrderBy(x => x.StartDate).Last().Field})",
- Salary = p.Salaries == null || p.Salaries.Count == 0 ? 0 : p.Salaries.OrderBy(x => x.Date).Last().Amount,
- SalaryPosition = p.Salaries == null || p.Salaries.Count == 0 ? 0 : p.Salaries.OrderBy(x => x.Date).Last().PositionSalaryAmount,
+ public async Task> GetReport2Query(Guid organizationId)
+ {
+ var organizations = new List();
+ organizations = await GetAllIdByRootAsync(organizationId);
- }).ToList();
+ var orgWithOrder = new List();
+ orgWithOrder = await GetAllOcItemByRootAsync(organizationId);
+
+ var ocIdList = _profileService.GetAllIdByRoot(organizationId);
+ var RootOcName = _profileService.GetOrganizationNameFullPath(organizationId, false, false);
+
+ var prefixes = await _applicationDbContext.Prefixes.ToListAsync();
+ var organizationPositions = await _context.OrganizationPositions.ToListAsync();
+ var profilePositions = await _context.ProfilePositions.ToListAsync();
+ var positionNumbers = await _context.PositionNumbers.ToListAsync();
+ var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync();
+ var positionLevels = await _applicationDbContext.PositionLevels.ToListAsync();
+ var positionMasters = await _context.PositionMasters.ToListAsync();
+ var profiles = await _applicationDbContext.Profiles.ToListAsync();
+ var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync();
+ var report2s = await _context.Report2s.ToListAsync();
+ var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync();
+ var positionExecutiveSides = await _applicationDbContext.PositionExecutiveSides.ToListAsync();
+ var positionExecutives = await _applicationDbContext.PositionExecutives.ToListAsync();
+ var orgData = await _applicationDbContext.Organizations.ToListAsync();
+ var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync();
+
+ var raw_results = (from op in organizationPositions
+ where organizations.Contains(op.OrganizationId == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : op.OrganizationId.Value)
+ join oc in orgData on op?.OrganizationId equals oc?.Id
+ join pp in profilePositions on op?.Id equals pp?.OrganizationPositionId into ppGroup
+ from pp in ppGroup.DefaultIfEmpty()
+ join pn in positionNumbers on op?.PositionNumberId equals pn?.Id into pnGroup
+ from pn in pnGroup.DefaultIfEmpty()
+ join os in organizationShortNames on pn?.OrganizationShortNameId equals os?.Id into osGroup
+ from os in osGroup.DefaultIfEmpty()
+ join pm in positionMasters on op?.PositionMasterId equals pm?.Id into pmGroup
+ from pm in pmGroup.DefaultIfEmpty()
+ join pPath in positionPaths on pm?.PositionPathId equals pPath?.Id into pPathGroup
+ from pPath in pPathGroup.DefaultIfEmpty()
+
+ join ps in positionPathSides on pm?.PositionPathSideId equals ps?.Id into psGroup
+ from ps in psGroup.DefaultIfEmpty()
+ join pe in positionExecutives on pm?.PositionExecutiveId equals pe?.Id into peGroup
+ from pe in peGroup.DefaultIfEmpty()
+ join pes in positionExecutiveSides on pm?.PositionExecutiveSideId equals pes?.Id into pesGroup
+ from pes in pesGroup.DefaultIfEmpty()
+
+ join pt in positionTypes on pm?.PositionTypeId equals pt?.Id into ptGroup
+ from pt in ptGroup.DefaultIfEmpty()
- var report2_raw_data = (from r in _context.Report2s.AsNoTracking().ToList()
- //join opos in _context.ProfilePositions.AsNoTracking().ToList() on r.OrganizationPositionId equals opos.OrganizationPositionId into r_opos_join
- //from opos_join in r_opos_join.DefaultIfEmpty()
+ join p in profiles on pp?.ProfileId equals p?.Id into pGroup
+ from p in pGroup.DefaultIfEmpty()
+ join pf in prefixes on p?.PrefixId equals pf?.Id into pfGroup
+ from pf in pfGroup.DefaultIfEmpty()
+ join rp in report2s on pn?.Id equals rp?.PositionNumId into rpGroup
+ from rp in rpGroup.DefaultIfEmpty()
+ join pnNew in positionNumbers on rp == null ? op?.PositionNumberId : rp?.PositionNumId equals pnNew?.Id into pnNewGroup
+ from pnNew in pnNewGroup.DefaultIfEmpty()
+ join ppNew in positionPaths on rp == null ? pm?.PositionPathId : rp?.PositionPathId equals ppNew?.Id into ppNewGroup
+ from ppNew in ppNewGroup.DefaultIfEmpty()
+ join plNew in positionLevels on rp == null ? p?.PositionLevelId : rp?.PositionLevelId equals plNew?.Id into plNewGroup
+ from plNew in plNewGroup.DefaultIfEmpty()
- join ppos in _context.ProfilePositions.AsNoTracking().ToList() on r.ProfilePositionId equals ppos.Id into r_ppos_join
- from ppos_join in r_ppos_join.DefaultIfEmpty()
- //join pf in profile_data.ToList() on ppos_join.ProfileId equals pf.Id into r_pf_join
- //from pf_join in r_pf_join.DefaultIfEmpty()
- select new
- {
- Id = r.Id,
- ProfilePositionId = ppos_join == null ? Guid.Empty : ppos_join.Id,
- CitizenId = ppos_join != null ? GetCitizenId(ppos_join.ProfileId.Value) : "",
- Prefix = ppos_join != null ? GetPrefix(ppos_join.ProfileId.Value) : "",
- FirstName = ppos_join != null ? GetFirstName(ppos_join.ProfileId.Value) : "",
- LastName = ppos_join != null ? GetLastName(ppos_join.ProfileId.Value) : "",
- // new
- OrganizationName = r.OrganizationOrganization,
- ShortName = GetShortNameFromPosNo(r.PositionNum),
- PositionNumber = r.PositionNum,
- PositionNumberInt = GetPosnoIntFromPosNo(r.PositionNum),
- PositionPath = r.PositionPath,
- PositionPathSide = r.PositionPathSide,
- PositionType = r.PositionType,
- PositionLevel = r.PositionLevel,
- PositionExecutive = r.PositionExecutive,
- PositionExecutiveSide = r.PositionExecutiveSide,
+ join psNew in positionPathSides on rp == null ? pm?.PositionPathSideId : rp?.PositionPathSideId equals psNew?.Id into psNewGroup
+ from psNew in psNewGroup.DefaultIfEmpty()
+ join peNew in positionExecutives on rp == null ? pm?.PositionExecutiveId : rp?.PositionExecutiveId equals peNew?.Id into peNewGroup
+ from peNew in peNewGroup.DefaultIfEmpty()
+ join pesNew in positionExecutiveSides on rp == null ? pm?.PositionExecutiveSideId : rp?.PositionExecutiveSideId equals pesNew?.Id into pesNewGroup
+ from pesNew in pesNewGroup.DefaultIfEmpty()
- OrganizationPositionId = r.OrganizationPositionId,
+ join ptNew in positionTypes on rp == null ? pm?.PositionTypeId : rp?.PositionTypeId equals ptNew?.Id into ptNewGroup
+ from ptNew in ptNewGroup.DefaultIfEmpty()
- // old
- OcId = GetOcId(r.OrganizationShortNameId.Value, r.OrganizationOrganizationId.Value),
- Degree = ppos_join == null ? "" : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().Degree),
- Salary = ppos_join == null ? 0 : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().Salary),
- SalaryPosition = ppos_join == null ? 0 : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().SalaryPosition),
-
- ShortNameOld = GetShortNameFromPosNo(r.PositionNumOld),
- PositionNumberOld = r.PositionNumOld,
- PositionNumberOldInt = GetPosnoIntFromPosNo(r.PositionNumOld),
- GovCode = r.GovernmentCodeOld,
- GovCodeNew = r.GovernmentCode,
- PositionName = r.PositionPath,
- PositionNameOld = r.PositionPathOld,
+ join orgOrder in orgWithOrder on op.OrganizationId equals orgOrder.Id
- PositionPathOld = r.PositionPathOld,
- PositionPathSideOld = r.PositionPathSideOld,
- PositionTypeOld = r.PositionTypeOld,
- PositionLevelOld = r.PositionLevelOld,
- PositionExecutiveOld = r.PositionExecutiveOld,
- PositionExecutiveSideOld = r.PositionExecutiveSideOld,
- }).ToList();
+ select new
+ {
+ ProfilePositionId = pp == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : pp.Id,
+ ProfileId = p == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.Id,
+ Prefix = pf == null ? null : pf.Name,
+ FirstName = p == null ? null : p.FirstName,
+ LastName = p == null ? null : p.LastName,
+ PositionNumberOld = rp == null ? (pn == null ? null : pn.Name) : rp.PositionNumOld,
+ PositionPathOld = rp == null ? (pPath == null ? null : pPath.Name) : rp.PositionPathOld,
+ PositionLevelOld = rp == null ? (p == null ? null : p.PositionLevel) : rp.PositionLevelOld,
+ PositionNumberIdNew = pnNew == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : pnNew.Id,
+ PositionNumberNew = pnNew == null ? null : pnNew.Name,
+ PositionPathNew = ppNew == null ? null : ppNew.Name,
+ PositionLevelNew = plNew == null ? null : plNew.Name,
+ PositionMasterId = pm == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : pm.Id,
+ Qualification = pm == null ? null : pm.Qualification,
+ OrganizationShortName = os == null ? null : os.Name,
+ Change = rp == null ? null : (rp == null ? null : rp.Status),
+ StatusPosition = p == null ? false : true,
+ Report2 = rp,
+ ocId = op.OrganizationId,
+ ocIdNew = rp == null ? op.OrganizationId : GetOrgIdByOrgPositionId(rp.OrganizationPositionId.Value).Result,
+ PositionPathSideOld = rp == null ? (ps == null ? null : ps.Name) : rp.PositionPathSideOld,
+ PositionPathSideNew = psNew == null ? null : psNew.Name,
+ PositionExecutiveOld = rp == null ? (pe == null ? null : pe.Name) : rp.PositionExecutiveOld,
+ PositionExecutiveNew = peNew == null ? null : peNew.Name,
+ PositionExecutiveSideOld = rp == null ? (pes == null ? null : pes.Name) : rp.PositionExecutiveSideOld,
+ PositionExecutiveSideNew = pesNew == null ? null : pesNew.Name,
+ Remark = op.PositionUserNote ?? "",
+ OcOrder = orgOrder.Order,
+ PositonTypeOld = rp == null ? (pt == null ? null : pt.Name) : rp.PositionTypeOld,
+ PositionTypeNew = ptNew == null ? null : ptNew.Name,
+
+ })
+ .ToList()
+ .OrderBy(x => x.OcOrder).ThenBy(x => GetPosnoIntFromPosNo(x.PositionNumberOld))
+ .ToList();
+
+ var results = new List();
+
+ var PositionLevels = await _applicationDbContext.PositionLevels
+ .ToListAsync();
+
+ foreach (var r in raw_results.ToList())
+ {
+ var salaryRecord = _applicationDbContext.ProfileSalaries.AsQueryable()
+ .Include(p => p.Profile)
+ .OrderByDescending(x => x.Date)
+ .FirstOrDefault(x => x.Profile.Id == r.ProfileId);
+
+ var lastEducation = _applicationDbContext.ProfileEducations.AsQueryable()
+ .Include(p => p.Profile)
+ .OrderByDescending(x => x.FinishDate)
+ .FirstOrDefault(x => x.Profile.Id == r.ProfileId);
+ //.FirstOrDefault(x => x.ProfileId == r.ProfileId);
+
+ var allLevel = await _applicationDbContext.AvailablePositionLevels.ToListAsync();
+
+ var data = new Account2ResultItem
+ {
+ Id = r.Report2 == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : r.Report2.Id,
+ RootOcId = organizationId,
+ RootOcName = RootOcName,
+ OcId = r.ocId.Value,
+ OcFullName = _profileService.FindOCFullPathWithNewLine(r.ocId.Value, false, suppress: RootOcName),
+ OcName = _profileService.GetOrganizationName(r.ocId.Value),
+
+ ShortName = GetShortNameFromPosNo(r.PositionNumberOld),
+ PositionNumber = r.PositionNumberOld,
+ PositionLevel = r.PositionLevelOld,
+ PositionName = r.PositionPathOld,
+ PositionSide = r.PositionPathSideOld,
+ PositionExecutive = r.PositionExecutiveOld,
+ PositionExecutiveSide = r.PositionExecutiveSideOld,
+ Remark = r.Remark,
+ PositionType = r.PositonTypeOld,
+
+ OcIdNew = r.ocIdNew.Value,
+ OcFullNameNew = _profileService.FindOCFullPathWithNewLine(r.ocIdNew.Value, false, suppress: RootOcName),
+ OcNameNew = _profileService.GetOrganizationName(r.ocIdNew.Value),
+
+ ShortNameNew = GetShortNameFromPosNo(r.PositionNumberNew),
+
+ PositionNumberNew = r.PositionNumberNew,
+ PositionLevelNew = r.PositionLevelNew,
+ PositionNameNew = r.PositionPathNew,
+ PositionSideNew = r.PositionPathSideNew,
+ PositionExecutiveNew = r.PositionExecutiveNew,
+ PositionExecutiveSideNew = r.PositionExecutiveSideNew,
+ PositionTypeNew = r.PositionTypeNew,
+
+ Prefix = r.Prefix,
+ FirstName = r.FirstName,
+ LastName = r.LastName,
+ Degree = lastEducation == null ? r.Qualification : lastEducation.Degree,
+
+ Salary = salaryRecord == null || salaryRecord.Amount == null ? 0 : (int)salaryRecord.Amount!.Value,
+ SalaryPosition = salaryRecord == null || salaryRecord.PositionSalaryAmount == null ? 0 : (int)salaryRecord.PositionSalaryAmount!.Value,
+ OcOrder = r.OcOrder
+ };
+ results.Add(data);
+ }
+ // results = results.Sort()
+ return results;
+ }
+
+ public async Task> GetReport2QueryOld(Guid ocId)
+ {
+ try
+ {
- //var report2_data = (from org_pos in _context.OrganizationPositions.ToList()
- // join ppos in _context.ProfilePositions.ToList() on org_pos.Id equals ppos.OrganizationPositionId
- // join pf in profile_data.ToList() on ppos.ProfileId equals pf.Id
- // join r_raw in _context.Report2s.ToList() on ppos.Id equals r_raw.ProfilePositionId into r_join
- // from r in r_join.DefaultIfEmpty()
- // select new
- // {
- // //Report2Id = r.Id,
- // ProfilePositionId = ppos.Id,
- // CitizenId = pf.CitizenId,
- // Prefix = pf.Prefix,
- // FirstName = pf.FirstName,
- // LastName = pf.LastName,
- // OrganizationName = r == null ? "" : r.OrganizationOrganization,
- // ShortName = r == null ? pf.OrganizationShortName : GetShortNameFromPosNo(r.PositionNum),
- // PositionNumber = r == null ? pf.PosNo : r.PositionNum,
- // PositionNumberInt = r == null ? GetPosnoIntFromPosNo(pf.PosNo) : GetPosnoIntFromPosNo(r.PositionNum),
- // PositionPath = r == null ? pf.Position : r.PositionPath,
- // PositionPathSide = r == null ? pf.PositionPathSide : r.PositionPathSide,
- // PositionType = r == null ? pf.PositionType : r.PositionType,
- // PositionLevel = r == null ? pf.PositionLevel : r.PositionLevel,
- // PositionExecutive = r == null ? pf.PositionExecutive : r.PositionExecutive,
- // PositionExecutiveSide = r == null ? pf.PositionExecutiveSide : r.PositionExecutiveSide,
- // OcId = org_pos.Id,
- // OrganizationPositionId = ppos.OrganizationPositionId,
- // Degree = pf.Degree,
- // Salary = pf.Salary,
- // SalaryPosition = pf.SalaryPosition,
+ var ocIdList = _profileService.GetAllIdByRoot(ocId);
+ var RootOcName = _profileService.GetOrganizationNameFullPath(ocId, false, false);
- // ShortNameOld = r == null ? pf.OrganizationShortName : GetShortNameFromPosNo(r.PositionNumOld),
- // PositionNumberOld = r == null ? pf.PosNo : r.PositionNumOld,
- // PositionNumberOldInt = r == null ? GetPosnoIntFromPosNo(pf.PosNo) : GetPosnoIntFromPosNo(r.PositionNumOld),
+ var organizationPositions = await _context.OrganizationPositions.ToListAsync();
+ var positionMasters = await _context.PositionMasters.ToListAsync();
+ var organizations = await _context.Organizations.ToListAsync();
+ var organizationOrganizations = await _applicationDbContext.OrganizationOrganizations.ToListAsync();
+ var organizationShortNames = await _applicationDbContext.OrganizationShortNames.ToListAsync();
+ var positionNumbers = await _context.PositionNumbers.ToListAsync();
+ var executivePositions = await _applicationDbContext.PositionExecutives.ToListAsync();
+ var executivePositionSide = await _applicationDbContext.PositionExecutiveSides.ToListAsync();
+ var positionPaths = await _applicationDbContext.PositionPaths.ToListAsync();
+ var positionPathSides = await _applicationDbContext.PositionPathSides.ToListAsync();
+ var positionTypes = await _applicationDbContext.PositionTypes.ToListAsync();
+ var profilePositions = await _context.ProfilePositions.ToListAsync();
+ var prefixes = await _context.Prefixes.ToListAsync();
+ var profiles = await _context.Profiles.ToListAsync();
+ var report2 = await _context.Report2s.ToListAsync();
- // }).ToList();
-
- //var report2_data = (from r in _context.Report2s.ToList()
- // join ppos in _context.ProfilePositions.ToList() on r.ProfilePositionId equals ppos.Id
- // join org_pos in _context.OrganizationPositions.ToList() on ppos.OrganizationPositionId equals org_pos.Id
- // join pf in profile_data.ToList() on ppos.ProfileId equals pf.Id
- // select new
- // {
- // Id = r.Id,
- // ProfilePositionId = r.ProfilePositionId,
- // CitizenId = pf.CitizenId,
- // Prefix = pf.Prefix,
- // FirstName = pf.FirstName,
- // LastName = pf.LastName,
- // OrganizationName = r.OrganizationOrganization,
- // ShortName = r.OrganizationShortName,
- // PositionNumber = r.PositionNum,
- // PositionPath = r.PositionPath,
- // PositionPathSide = r.PositionPathSide,
- // PositionType = r.PositionType,
- // PositionLevel = r.PositionLevel,
- // PositionExecutive = r.PositionExecutive,
- // PositionExecutiveSide = r.PositionExecutiveSide,
- // OcId = org_pos.Id,
- // OrganizationPositionId = ppos.OrganizationPositionId,
- // Degree = pf.Degree,
- // Salary = pf.Salary,
- // SalaryPosition = pf.SalaryPosition,
- // }).ToList();
+ var profile_data = (from p in profiles
+ join pf in prefixes on p.PrefixId equals pf.Id
+ join ps in profilePositions on p.Id equals ps.ProfileId
+ select new
+ {
+ p.Id,
+ p.CitizenId,
+ Prefix = pf.Name,
+ p.FirstName,
+ p.LastName,
+ p.PositionLine,
+ p.Position,
+ p.PositionPathSide,
+ p.PositionType,
+ p.PositionLevel,
+ p.PositionExecutive,
+ p.PositionExecutiveSide,
+ p.PosNo,
+ p.OrganizationShortName,
+ Degree = p.Educations == null || p.Educations.Count == 0 ? "" : $"{p.Educations.OrderBy(x => x.StartDate).Last().Degree}\r\n({p.Educations.OrderBy(x => x.StartDate).Last().Field})",
+ Salary = p.Salaries == null || p.Salaries.Count == 0 ? 0 : p.Salaries.OrderBy(x => x.Date).Last().Amount,
+ SalaryPosition = p.Salaries == null || p.Salaries.Count == 0 ? 0 : p.Salaries.OrderBy(x => x.Date).Last().PositionSalaryAmount,
+ OrganizationPositionId = ps.OrganizationPositionId
+ }).ToList();
- //var data2 = (from r in report2_raw_data
- // where ocIdList.Contains(r.OcId)
- // select new Account2ResultItem
- // {
- // Id = r.Id,
- // RootOcId = ocId,
- // RootOcName = RootOcName,
- // GovernmentCode = r.GovCode,
- // OcId = r.OcId,
- // OcFullName = _profileService.FindOCFullPathWithNewLine(r.OcId, false, suppress: RootOcName),
- // OcName = _profileService.GetOrganizationName(r.OcId),
- // ShortName = r.ShortNameOld,
- // PositionNumber = r.PositionNumberOld,
- // PositionLevel = r.PositionLevelOld,
- // PositionName = $"{r.PositionNameOld}\r\n",
- // PositionSide = r.PositionPathSideOld,
- // PositionExecutive = r.PositionExecutiveOld,
- // PositionExecutiveSide = r.PositionExecutiveSideOld,
- // Remark = "",
- // PositionType = r.PositionTypeOld,
- // OcIdNew = r.OcId,
- // OcFullNameNew = _profileService.FindOCFullPathWithNewLine(r.OcId, false, suppress: RootOcName),
- // OcNameNew = _profileService.GetOrganizationName(r.OcId),
- // ShortNameNew = r.ShortName,
- // PositionNumberNew = r.PositionNumber,
- // PositionLevelNew = r.PositionLevel,
- // PositionNameNew = $"{r.PositionName}\r\n",
- // PositionSideNew = r.PositionPathSide,
- // PositionExecutiveNew = r.PositionExecutive,
- // PositionExecutiveSideNew = r.PositionExecutiveSide,
- // PositionTypeNew = r.PositionType,
+ //var report2_raw_data = (from r in _context.Report2s.AsNoTracking().ToList()
+ // //join opos in _context.ProfilePositions.AsNoTracking().ToList() on r.OrganizationPositionId equals opos.OrganizationPositionId into r_opos_join
+ // //from opos_join in r_opos_join.DefaultIfEmpty()
+
+ // join ppos in _context.ProfilePositions.AsNoTracking().ToList() on r.ProfilePositionId equals ppos.Id into r_ppos_join
+ // from ppos_join in r_ppos_join.DefaultIfEmpty()
+ // //join pf in profile_data.ToList() on ppos_join.ProfileId equals pf.Id into r_pf_join
+ // //from pf_join in r_pf_join.DefaultIfEmpty()
+ // select new
+ // {
+ // Id = r.Id,
+ // ProfilePositionId = ppos_join == null ? Guid.Empty : ppos_join.Id,
+ // CitizenId = ppos_join != null ? GetCitizenId(ppos_join.ProfileId.Value) : "",
+ // Prefix = ppos_join != null ? GetPrefix(ppos_join.ProfileId.Value) : "",
+ // FirstName = ppos_join != null ? GetFirstName(ppos_join.ProfileId.Value) : "",
+ // LastName = ppos_join != null ? GetLastName(ppos_join.ProfileId.Value) : "",
+ // // new
+ // OrganizationName = r.OrganizationOrganization,
+ // ShortName = GetShortNameFromPosNo(r.PositionNum),
+ // PositionNumber = r.PositionNum,
+ // PositionNumberInt = GetPosnoIntFromPosNo(r.PositionNum),
+ // PositionPath = r.PositionPath,
+ // PositionPathSide = r.PositionPathSide,
+ // PositionType = r.PositionType,
+ // PositionLevel = r.PositionLevel,
+ // PositionExecutive = r.PositionExecutive,
+ // PositionExecutiveSide = r.PositionExecutiveSide,
+
+ // OrganizationPositionId = r.OrganizationPositionId,
+
+ // // old
+ // OcId = GetOcId(r.OrganizationShortNameId.Value, r.OrganizationOrganizationId.Value),
+ // Degree = ppos_join == null ? "" : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().Degree),
+ // Salary = ppos_join == null ? 0 : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().Salary),
+ // SalaryPosition = ppos_join == null ? 0 : (profile_data.Where(x => x.Id == ppos_join.ProfileId).FirstOrDefault().SalaryPosition),
+
+ // ShortNameOld = GetShortNameFromPosNo(r.PositionNumOld),
+ // PositionNumberOld = r.PositionNumOld,
+ // PositionNumberOldInt = GetPosnoIntFromPosNo(r.PositionNumOld),
+ // GovCode = r.GovernmentCodeOld,
+ // GovCodeNew = r.GovernmentCode,
+ // PositionName = r.PositionPath,
+ // PositionNameOld = r.PositionPathOld,
- // PositionNumberInt = r.PositionNumberOldInt,
- // PositionNumberIntNew = r.PositionNumberInt,
+ // PositionPathOld = r.PositionPathOld,
+ // PositionPathSideOld = r.PositionPathSideOld,
+ // PositionTypeOld = r.PositionTypeOld,
+ // PositionLevelOld = r.PositionLevelOld,
+ // PositionExecutiveOld = r.PositionExecutiveOld,
+ // PositionExecutiveSideOld = r.PositionExecutiveSideOld,
+ // }).ToList();
- // Prefix = r.Prefix,
- // FirstName = r.FirstName,
- // LastName = r.LastName,
- // Degree = r.Degree,
+ var report2_data = (from org_pos in _context.OrganizationPositions.ToList()
+ join ppos in _context.ProfilePositions.ToList() on org_pos.Id equals ppos.OrganizationPositionId
+ join pf in profile_data.ToList() on ppos.ProfileId equals pf.Id
+ join r_raw in _context.Report2s.ToList() on ppos.OrganizationPositionId equals r_raw.OrganizationPositionId into r_join
+ from r in r_join.DefaultIfEmpty()
+ select new
+ {
+ //Report2Id = r.Id,
+ ProfilePositionId = ppos.Id,
+ CitizenId = pf.CitizenId,
+ Prefix = pf.Prefix,
+ FirstName = pf.FirstName,
+ LastName = pf.LastName,
+ OrganizationName = r == null ? "" : r.OrganizationOrganization,
+ ShortName = r == null ? pf.OrganizationShortName : GetShortNameFromPosNo(r.PositionNum),
+ PositionNumber = r == null ? pf.PosNo : r.PositionNum,
+ PositionNumberInt = r == null ? GetPosnoIntFromPosNo(pf.PosNo) : GetPosnoIntFromPosNo(r.PositionNum),
+ PositionPath = r == null ? pf.Position : r.PositionPath,
+ PositionPathSide = r == null ? pf.PositionPathSide : r.PositionPathSide,
+ PositionType = r == null ? pf.PositionType : r.PositionType,
+ PositionLevel = r == null ? pf.PositionLevel : r.PositionLevel,
+ PositionExecutive = r == null ? pf.PositionExecutive : r.PositionExecutive,
+ PositionExecutiveSide = r == null ? pf.PositionExecutiveSide : r.PositionExecutiveSide,
+ OcId = org_pos.OrganizationId.Value,
+ OrganizationPositionId = ppos.OrganizationPositionId,
+ Degree = pf.Degree,
+ Salary = pf.Salary,
+ SalaryPosition = pf.SalaryPosition,
- // Salary = Convert.ToInt32(r.Salary),
- // SalaryPosition = Convert.ToInt32(r.SalaryPosition)
+ ShortNameOld = r == null ? pf.OrganizationShortName : GetShortNameFromPosNo(r.PositionNumOld),
+ PositionNumberOld = r == null ? pf.PosNo : r.PositionNumOld,
+ PositionNumberOldInt = r == null ? GetPosnoIntFromPosNo(pf.PosNo) : GetPosnoIntFromPosNo(r.PositionNumOld),
+ PositionNameOld = r == null ? pf.PosNo : r.PositionPathOld,
+ }).ToList();
- // }).ToList();
+ //var report2_data = (from r in _context.Report2s.ToList()
+ // join ppos in _context.ProfilePositions.ToList() on r.OrganizationPositionId equals ppos.OrganizationPositionId
+ // join org_pos in _context.OrganizationPositions.ToList() on ppos.OrganizationPositionId equals org_pos.Id
+ // join pf_raw in profile_data.ToList() on r.OrganizationPositionId equals pf_raw.OrganizationPositionId into pf1
+ // from pf in pf1.DefaultIfEmpty()
- var data = (from op in organizationPositions
- join pm in positionMasters on op.PositionMasterId equals pm.Id
- join oc in organizations on op.OrganizationId equals oc.Id
- join oc_n in organizationOrganizations on oc.OrganizationOrganizationId equals oc_n.Id
- join sn in organizationShortNames on oc.OrganizationShortNameId equals sn.Id
- join pn in positionNumbers on op.PositionNumberId equals pn.Id
- join pp in positionPaths on pm.PositionPathId equals pp.Id
- join pps in positionPathSides on pm.PositionPathSideId equals pps.Id into pp_pps_join
- from pp_pps in pp_pps_join.DefaultIfEmpty()
- join ex_p in executivePositions on pm.PositionExecutiveId equals ex_p.Id into pm_exp_join
- from pm_exp in pm_exp_join.DefaultIfEmpty()
- join ex_p_s in executivePositionSide on pm.PositionExecutiveSideId equals ex_p_s.Id into pm_exp_s_join
- from pm_exp_s in pm_exp_s_join.DefaultIfEmpty()
- join pt in positionTypes on pm.PositionTypeId equals pt.Id
- join rp2 in report2_raw_data.ToList() on op.Id equals rp2.OrganizationPositionId into rp2_join
- from rp2_dt in rp2_join.DefaultIfEmpty()
+ // select new
+ // {
+ // Id = r.Id,
+ // ProfilePositionId = r.ProfilePositionId,
+ // CitizenId = pf is null ? GetCitizenId(ppos.ProfileId.Value) : pf.CitizenId,
+ // Prefix = pf is null ? GetPrefix(ppos.ProfileId.Value) : pf.Prefix,
+ // FirstName = pf is null ? GetFirstName(ppos.ProfileId.Value) : pf.FirstName,
+ // LastName = pf is null ? GetLastName(ppos.ProfileId.Value) : pf.LastName,
+ // OrganizationName = r.OrganizationOrganization,
+ // ShortName = r.OrganizationShortName,
+ // PositionNumber = r.PositionNum,
+ // PositionNumberInt = GetPosnoIntFromPosNo(r.PositionNum),
+ // PositionPath = r.PositionPath,
+ // PositionPathSide = r.PositionPathSide,
+ // PositionType = r.PositionType,
+ // PositionLevel = r.PositionLevel,
+ // PositionExecutive = r.PositionExecutive,
+ // PositionExecutiveSide = r.PositionExecutiveSide,
+ // OcId = org_pos.OrganizationId.Value,
+ // OrganizationPositionId = r.OrganizationPositionId,
+ // Degree = pf.Degree,
+ // Salary = pf.Salary,
+ // SalaryPosition = pf.SalaryPosition,
- where ocIdList.Contains((Guid)op.OrganizationId)
- select new Account2ResultItem
- {
- Id = op.Id,
- RootOcId = ocId,
- RootOcName = RootOcName,
- OcId = op.OrganizationId.Value,
- OcFullName = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName),
- OcName = _profileService.GetOrganizationName(op.OrganizationId.Value),
- ShortName = rp2_dt == null ? sn.Name : rp2_dt.ShortNameOld,
-
- PositionNumber = rp2_dt == null ? pn.Name : rp2_dt.PositionNumberOld,
+ // ShortNameOld = GetShortNameFromPosNo(r.PositionNumOld),
+ // PositionNumberOld = r.PositionNumOld,
+ // PositionNumberOldInt = GetPosnoIntFromPosNo(r.PositionNumOld),
+ // PositionNameOld = r.PositionPathOld,
+ // }).ToList();
+
+
+ //var data2 = (from r in report2_raw_data
+ // where ocIdList.Contains(r.OcId)
+ // select new Account2ResultItem
+ // {
+ // Id = r.Id,
+ // RootOcId = ocId,
+ // RootOcName = RootOcName,
+ // GovernmentCode = r.GovCode,
+ // OcId = r.OcId,
+ // OcFullName = _profileService.FindOCFullPathWithNewLine(r.OcId, false, suppress: RootOcName),
+ // OcName = _profileService.GetOrganizationName(r.OcId),
+ // ShortName = r.ShortNameOld,
+ // PositionNumber = r.PositionNumberOld,
+ // PositionLevel = r.PositionLevelOld,
+ // PositionName = $"{r.PositionNameOld}\r\n",
+ // PositionSide = r.PositionPathSideOld,
+ // PositionExecutive = r.PositionExecutiveOld,
+ // PositionExecutiveSide = r.PositionExecutiveSideOld,
+ // Remark = "",
+ // PositionType = r.PositionTypeOld,
+ // OcIdNew = r.OcId,
+ // OcFullNameNew = _profileService.FindOCFullPathWithNewLine(r.OcId, false, suppress: RootOcName),
+ // OcNameNew = _profileService.GetOrganizationName(r.OcId),
+ // ShortNameNew = r.ShortName,
+ // PositionNumberNew = r.PositionNumber,
+ // PositionLevelNew = r.PositionLevel,
+ // PositionNameNew = $"{r.PositionName}\r\n",
+ // PositionSideNew = r.PositionPathSide,
+ // PositionExecutiveNew = r.PositionExecutive,
+ // PositionExecutiveSideNew = r.PositionExecutiveSide,
+ // PositionTypeNew = r.PositionType,
+
+
+ // PositionNumberInt = r.PositionNumberOldInt,
+ // PositionNumberIntNew = r.PositionNumberInt,
+
+
+ // Prefix = r.Prefix,
+ // FirstName = r.FirstName,
+ // LastName = r.LastName,
+ // Degree = r.Degree,
+
+ // Salary = Convert.ToInt32(r.Salary),
+ // SalaryPosition = Convert.ToInt32(r.SalaryPosition)
+
+ // }).ToList();
+
+ var data2 = (from op in organizationPositions
+ join rp2 in report2_data.ToList() on op.Id equals rp2.OrganizationPositionId into rp2_join
+ from rp2_dt in rp2_join.DefaultIfEmpty()
+ where ocIdList.Contains((Guid)op.OrganizationId)
+ select new
+ {
+ ShortNameNew = rp2_dt == null ? "" : rp2_dt.ShortName,
+ PositionNumberNew = rp2_dt == null ? "" : rp2_dt.PositionNumber,
+ Prefix = rp2_dt == null ? "" : rp2_dt.Prefix,
+ FirstName = rp2_dt == null ? "" : rp2_dt.FirstName,
+ LastName = rp2_dt == null ? "" : rp2_dt.LastName,
+ }
+ ).ToList();
+
+
+ var data = (from op in organizationPositions
+ join pm in positionMasters on op.PositionMasterId equals pm.Id
+ join oc in organizations on op.OrganizationId equals oc.Id
+ join oc_n in organizationOrganizations on oc.OrganizationOrganizationId equals oc_n.Id
+ join sn in organizationShortNames on oc.OrganizationShortNameId equals sn.Id
+ join pn in positionNumbers on op.PositionNumberId equals pn.Id
+ join pp in positionPaths on pm.PositionPathId equals pp.Id
+ join pps in positionPathSides on pm.PositionPathSideId equals pps.Id into pp_pps_join
+ from pp_pps in pp_pps_join.DefaultIfEmpty()
+ join ex_p in executivePositions on pm.PositionExecutiveId equals ex_p.Id into pm_exp_join
+ from pm_exp in pm_exp_join.DefaultIfEmpty()
+ join ex_p_s in executivePositionSide on pm.PositionExecutiveSideId equals ex_p_s.Id into pm_exp_s_join
+ from pm_exp_s in pm_exp_s_join.DefaultIfEmpty()
+ join pt in positionTypes on pm.PositionTypeId equals pt.Id
+ join rp2 in report2_data.ToList() on op.Id equals rp2.OrganizationPositionId into rp2_join
+ from rp2_dt in rp2_join.DefaultIfEmpty()
+
+ where ocIdList.Contains((Guid)op.OrganizationId)
+ select new Account2ResultItem
+ {
+ Id = op.Id,
+ RootOcId = ocId,
+ RootOcName = RootOcName,
+ OcId = op.OrganizationId.Value,
+ OcFullName = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName),
+ OcName = _profileService.GetOrganizationName(op.OrganizationId.Value),
+ ShortName = rp2_dt == null ? sn.Name : rp2_dt.ShortNameOld,
+
+ PositionNumber = rp2_dt == null ? pn.Name : rp2_dt.PositionNumberOld,
PositionLevel = rp2_dt == null ? _profileService.GetPositionLevel(pm.Id) : rp2_dt.PositionLevel,
- PositionName = rp2_dt == null ? $"{pp.Name}\r\n" : $"{ rp2_dt.PositionNameOld }\r\n",
- PositionSide = pm.PositionPathSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionPathSideObject).GetNameList(),
- PositionExecutive = pm_exp == null ? "" : $"{pm_exp.Name}\r\n",
- PositionExecutiveSide = pm.PositionExecutiveSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionExecutiveSideObject).GetNameList(),
- Remark = op.PositionUserNote,
- OcOrder = oc.OrganizationOrder.Value,
- PositionType = pt.Name,
+ PositionName = rp2_dt == null ? $"{pp.Name}\r\n" : $"{rp2_dt.PositionNameOld}\r\n",
+ PositionSide = pm.PositionPathSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionPathSideObject).GetNameList(),
+ PositionExecutive = pm_exp == null ? "" : $"{pm_exp.Name}\r\n",
+ PositionExecutiveSide = pm.PositionExecutiveSideObject is null ? "" : Newtonsoft.Json.JsonConvert.DeserializeObject>(pm.PositionExecutiveSideObject).GetNameList(),
+ Remark = op.PositionUserNote,
+ OcOrder = oc.OrganizationOrder.Value,
+ PositionType = pt.Name,
- OcIdNew = rp2_dt == null ? op.OrganizationId.Value : rp2_dt.OcId,
- OcFullNameNew = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName),
- OcNameNew = rp2_dt == null ? _profileService.GetOrganizationName(op.OrganizationId.Value) : _profileService.GetOrganizationName(rp2_dt.OcId),
- ShortNameNew = rp2_dt == null ? "" : rp2_dt.ShortName,
- PositionNumberNew = rp2_dt == null ? "" : rp2_dt.PositionNumber,
- PositionLevelNew = rp2_dt == null ? "" : rp2_dt.PositionLevel,
- PositionNameNew = rp2_dt == null ? "" : rp2_dt.PositionPath,
- PositionSideNew = rp2_dt == null ? "" : rp2_dt.PositionPathSide,
- PositionExecutiveNew = rp2_dt == null ? "" : rp2_dt.PositionExecutive,
- PositionExecutiveSideNew = rp2_dt == null ? "" : rp2_dt.PositionExecutiveSide,
- PositionTypeNew = rp2_dt == null ? "" : rp2_dt.PositionType,
+ OcIdNew = rp2_dt == null ? op.OrganizationId.Value : rp2_dt.OcId,
+ OcFullNameNew = _profileService.FindOCFullPathWithNewLine(op.OrganizationId.Value, false, suppress: RootOcName),
+ OcNameNew = rp2_dt == null ? _profileService.GetOrganizationName(op.OrganizationId.Value) : _profileService.GetOrganizationName(rp2_dt.OcId),
- Prefix = rp2_dt == null ? "" : rp2_dt.Prefix,
- FirstName = rp2_dt == null ? "" : rp2_dt.FirstName,
- LastName = rp2_dt == null ? "" : rp2_dt.LastName,
- Degree = rp2_dt == null ? (pm == null ? "" : pm.Qualification) : rp2_dt.Degree,
+ ShortNameNew = rp2_dt == null ? "" : rp2_dt.ShortName,
+ PositionNumberNew = rp2_dt == null ? "" : rp2_dt.PositionNumber,
+ PositionLevelNew = rp2_dt == null ? "" : rp2_dt.PositionLevel,
+ PositionNameNew = rp2_dt == null ? "" : rp2_dt.PositionPath,
+ PositionSideNew = rp2_dt == null ? "" : rp2_dt.PositionPathSide,
+ PositionExecutiveNew = rp2_dt == null ? "" : rp2_dt.PositionExecutive,
+ PositionExecutiveSideNew = rp2_dt == null ? "" : rp2_dt.PositionExecutiveSide,
+ PositionTypeNew = rp2_dt == null ? "" : rp2_dt.PositionType,
- Salary = rp2_dt == null ? 0 : (int)rp2_dt.Salary.Value,
- SalaryPosition = rp2_dt == null ? 0 : (int)rp2_dt.SalaryPosition.Value,
+ Prefix = rp2_dt == null ? "" : rp2_dt.Prefix,
+ FirstName = rp2_dt == null ? "" : rp2_dt.FirstName,
+ LastName = rp2_dt == null ? "" : rp2_dt.LastName,
+ Degree = rp2_dt == null ? (pm == null ? "" : pm.Qualification!) : rp2_dt.Degree,
+ Salary = rp2_dt == null || rp2_dt.Salary == null ? 0 : (int)rp2_dt.Salary!.Value,
+ SalaryPosition = rp2_dt == null || rp2_dt.SalaryPosition == null ? 0 : (int)rp2_dt.SalaryPosition!.Value,
- }).ToList();
- return data;
- }
- catch
- {
- throw;
- }
- }
+ }).ToList();
- #endregion
+ return data;
+ }
+ catch
+ {
+ throw;
+ }
+ }
- #endregion
- }
+ #endregion
- public class Account1ResultItem
- {
- public Guid Id { get; set; }
+ #endregion
+ }
- public Guid RootOcId { get; set; }
+ public class Account1ResultItem
+ {
+ public Guid Id { get; set; }
- public string RootOcName { get; set; } = string.Empty;
+ public Guid RootOcId { get; set; }
- public Guid OcId { get; set; }
+ public string RootOcName { get; set; } = string.Empty;
- public string OcFullName { get; set; } = string.Empty;
+ public Guid OcId { get; set; }
- public string OcName { get; set; } = string.Empty;
+ public string OcFullName { get; set; } = string.Empty;
- public string ShortName { get; set; } = string.Empty;
+ public string OcName { get; set; } = string.Empty;
- public string PositionNumber { get; set; } = string.Empty;
+ public string ShortName { get; set; } = string.Empty;
- public string PositionName { get; set; } = string.Empty;
+ public string PositionNumber { get; set; } = string.Empty;
- public string PositionSide { get; set; } = string.Empty;
+ public string PositionName { get; set; } = string.Empty;
- public string PositionLevel { get; set; } = string.Empty;
+ public string PositionSide { get; set; } = string.Empty;
- public string PositionExecutive { get; set; } = string.Empty;
+ public string PositionLevel { get; set; } = string.Empty;
- public string PositionExecutiveSide { get; set; } = string.Empty;
+ public string PositionExecutive { get; set; } = string.Empty;
- public string Remark { get; set; } = string.Empty;
+ public string PositionExecutiveSide { get; set; } = string.Empty;
- public int OcOrder { get; set; } = 0;
+ public string Remark { get; set; } = string.Empty;
- public int PositionNumberInt { get; set; } = 0;
+ public int OcOrder { get; set; } = 0;
- public string PositionType { get; set; } = string.Empty;
+ public int PositionNumberInt { get; set; } = 0;
- public int IsDirector { get; set; } = 0;
+ public string PositionType { get; set; } = string.Empty;
- public string GovernmentCode { get; set; } = string.Empty;
- }
+ public int IsDirector { get; set; } = 0;
- public class Account2ResultItem
- {
- public Guid Id { get; set; }
+ public string GovernmentCode { get; set; } = string.Empty;
+ }
- public Guid RootOcId { get; set; }
+ public class Account2ResultItem
+ {
+ public Guid Id { get; set; }
- public string RootOcName { get; set; } = string.Empty;
+ public Guid RootOcId { get; set; }
- public Guid OcId { get; set; }
+ public string RootOcName { get; set; } = string.Empty;
- public string OcFullName { get; set; } = string.Empty;
+ public Guid OcId { get; set; }
- public string OcName { get; set; } = string.Empty;
+ public string OcFullName { get; set; } = string.Empty;
- public string ShortName { get; set; } = string.Empty;
+ public string OcName { get; set; } = string.Empty;
- public string PositionNumber { get; set; } = string.Empty;
+ public string ShortName { get; set; } = string.Empty;
- public string PositionName { get; set; } = string.Empty;
+ public string PositionNumber { get; set; } = string.Empty;
- public string PositionSide { get; set; } = string.Empty;
+ public string PositionName { get; set; } = string.Empty;
- public string PositionLevel { get; set; } = string.Empty;
+ public string PositionSide { get; set; } = string.Empty;
- public string PositionExecutive { get; set; } = string.Empty;
+ public string PositionLevel { get; set; } = string.Empty;
- public string PositionExecutiveSide { get; set; } = string.Empty;
+ public string PositionExecutive { get; set; } = string.Empty;
- public string Remark { get; set; } = string.Empty;
+ public string PositionExecutiveSide { get; set; } = string.Empty;
- public int OcOrder { get; set; } = 0;
+ public string Remark { get; set; } = string.Empty;
- public int PositionNumberInt { get; set; } = 0;
+ public int OcOrder { get; set; } = 0;
- public string PositionType { get; set; } = string.Empty;
+ public int PositionNumberInt { get; set; } = 0;
- // new
- public Guid RootOcIdNew { get; set; }
+ public string PositionType { get; set; } = string.Empty;
- public string RootOcNameNew { get; set; } = string.Empty;
+ // new
+ public Guid RootOcIdNew { get; set; }
- public Guid OcIdNew { get; set; }
+ public string RootOcNameNew { get; set; } = string.Empty;
- public string OcFullNameNew { get; set; } = string.Empty;
+ public Guid OcIdNew { get; set; }
- public string OcNameNew { get; set; } = string.Empty;
+ public string OcFullNameNew { get; set; } = string.Empty;
- public string ShortNameNew { get; set; } = string.Empty;
+ public string OcNameNew { get; set; } = string.Empty;
- public string PositionNumberNew { get; set; } = string.Empty;
+ public string ShortNameNew { get; set; } = string.Empty;
- public string PositionNameNew { get; set; } = string.Empty;
+ public string PositionNumberNew { get; set; } = string.Empty;
- public string PositionSideNew { get; set; } = string.Empty;
+ public string PositionNameNew { get; set; } = string.Empty;
- public string PositionLevelNew { get; set; } = string.Empty;
+ public string PositionSideNew { get; set; } = string.Empty;
- public string PositionExecutiveNew { get; set; } = string.Empty;
+ public string PositionLevelNew { get; set; } = string.Empty;
- public string PositionExecutiveSideNew { get; set; } = string.Empty;
+ public string PositionExecutiveNew { get; set; } = string.Empty;
- public int PositionNumberIntNew { get; set; } = 0;
+ public string PositionExecutiveSideNew { get; set; } = string.Empty;
- public string PositionTypeNew { get; set; } = string.Empty;
+ public int PositionNumberIntNew { get; set; } = 0;
- // name
- public string Prefix { get; set; } = string.Empty;
+ public string PositionTypeNew { get; set; } = string.Empty;
- public string FirstName { get; set; } = string.Empty;
+ // name
+ public string Prefix { get; set; } = string.Empty;
- public string LastName { get; set; } = string.Empty;
+ public string FirstName { get; set; } = string.Empty;
- public string Degree { get; set; } = string.Empty;
+ public string LastName { get; set; } = string.Empty;
- public int Salary { get; set; } = 0;
+ public string Degree { get; set; } = string.Empty;
- public int SalaryPosition { get; set; } = 0;
+ public int Salary { get; set; } = 0;
- public string FullName { get; set; } = string.Empty;
+ public int SalaryPosition { get; set; } = 0;
- public string GovernmentCode { get; set; } = string.Empty;
+ public string FullName { get; set; } = string.Empty;
- }
+ public string GovernmentCode { get; set; } = string.Empty;
- public class OrganizationItem
- {
- public Guid Id { get; set; }
+ }
- public string Name { get; set; } = string.Empty;
+ public class OrganizationItem
+ {
+ public Guid Id { get; set; }
- public int Order { get; set; } = 0;
- }
+ public string Name { get; set; } = string.Empty;
+
+ public int Order { get; set; } = 0;
+ }
}