Merge branch 'develop' into dev
All checks were successful
Build & Deploy on Dev / build (push) Successful in 49s
All checks were successful
Build & Deploy on Dev / build (push) Successful in 49s
* develop: build reload image add authname แก้ลำดับผลสอบ test build build no noti โหลดใบรับรอง
This commit is contained in:
commit
3ed62cea92
7 changed files with 113 additions and 51 deletions
9
.github/workflows/release.yaml
vendored
9
.github/workflows/release.yaml
vendored
|
|
@ -4,20 +4,13 @@ on:
|
||||||
push:
|
push:
|
||||||
tags:
|
tags:
|
||||||
- "reportv1-[0-9]+.[0-9]+.[0-9]+"
|
- "reportv1-[0-9]+.[0-9]+.[0-9]+"
|
||||||
# push:
|
|
||||||
# tags:
|
|
||||||
# - 'v[0-9]+.[0-9]+.[0-9]+'
|
|
||||||
# tags-ignore:
|
|
||||||
# - '2.*'
|
|
||||||
# Allow run workflow manually from Action tab
|
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
env:
|
env:
|
||||||
REGISTRY: docker.frappet.com
|
REGISTRY: docker.frappet.com
|
||||||
IMAGE_NAME: ehr/bma-ehr-report-service
|
IMAGE_NAME: ehr/bma-ehr-report-service
|
||||||
DEPLOY_HOST: frappet.com
|
DEPLOY_HOST: frappet.com
|
||||||
DEPLOY_PORT: 10102
|
DEPLOY_PORT: 10102
|
||||||
COMPOSE_PATH: /home/frappet/docker/bma-ehr
|
COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-report
|
||||||
# COMPOSE_PATH: /home/frappet/docker/bma/bma-ehr-report
|
|
||||||
TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0
|
TOKEN_LINE: uxuK5hDzS2DsoC5piJBrWRLiz8GgY7iMZZldOWsDDF0
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,8 @@ using BMA.EHR.Organization.Service.Extensions;
|
||||||
// using BMA.EHR.Core;
|
// using BMA.EHR.Core;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using static System.Runtime.InteropServices.JavaScript.JSType;
|
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||||
|
using System.Net.Http.Headers;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace BMA.EHR.Report.Service.Controllers
|
namespace BMA.EHR.Report.Service.Controllers
|
||||||
{
|
{
|
||||||
|
|
@ -28,6 +30,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
private readonly IWebHostEnvironment _hostingEnvironment;
|
private readonly IWebHostEnvironment _hostingEnvironment;
|
||||||
private readonly IConfiguration _configuration;
|
private readonly IConfiguration _configuration;
|
||||||
private readonly string space = "ㅤ";
|
private readonly string space = "ㅤ";
|
||||||
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
@ -35,13 +38,16 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
|
|
||||||
public ExamReportController(ExamDbContext context,
|
public ExamReportController(ExamDbContext context,
|
||||||
IWebHostEnvironment hostingEnvironment,
|
IWebHostEnvironment hostingEnvironment,
|
||||||
|
IHttpContextAccessor httpContextAccessor,
|
||||||
IConfiguration configuration)
|
IConfiguration configuration)
|
||||||
{
|
{
|
||||||
this._context = context;
|
this._context = context;
|
||||||
this._hostingEnvironment = hostingEnvironment;
|
this._hostingEnvironment = hostingEnvironment;
|
||||||
this._configuration = configuration;
|
this._configuration = configuration;
|
||||||
|
this._httpContextAccessor = httpContextAccessor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private string? token => _httpContextAccessor.HttpContext.Request.Headers["Authorization"];
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
#region " Methods "
|
#region " Methods "
|
||||||
|
|
@ -108,6 +114,34 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
var _data = await _context.Disables.AsQueryable()
|
||||||
|
.Include(x => x.PeriodExam)
|
||||||
|
.Where(x => x.PeriodExam.Id == id)
|
||||||
|
.Where(x => x.ExamId == examId)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
|
if (_data == null)
|
||||||
|
return Error("ไม่พบข้อมูลในระบบ");
|
||||||
|
|
||||||
|
// if (_data.AuthName == null || _data.AuthName == "")
|
||||||
|
// {
|
||||||
|
// var apiUrl = $"{_configuration["API"]}/org/find/head/officer";
|
||||||
|
// using (var client = new HttpClient())
|
||||||
|
// {
|
||||||
|
// client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||||
|
// client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
|
||||||
|
// var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
|
||||||
|
// var _res = await client.SendAsync(_req);
|
||||||
|
// var _result = await _res.Content.ReadAsStringAsync();
|
||||||
|
// if (_res.IsSuccessStatusCode)
|
||||||
|
// {
|
||||||
|
// var org = JsonConvert.DeserializeObject<dynamic>(_result);
|
||||||
|
// _data.AuthName = org.result.name == null ? "" : org.result.name;
|
||||||
|
// _data.AuthPosition = org.result.position == null ? "" : org.result.position;
|
||||||
|
// await _context.SaveChangesAsync();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
var data = await _context.Disables.AsQueryable()
|
var data = await _context.Disables.AsQueryable()
|
||||||
.Include(x => x.PeriodExam)
|
.Include(x => x.PeriodExam)
|
||||||
.Where(x => x.PeriodExam.Id == id)
|
.Where(x => x.PeriodExam.Id == id)
|
||||||
|
|
@ -125,8 +159,8 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
|
FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
|
||||||
ExamResult = sr == null ? "" : sr.ExamStatus,
|
ExamResult = sr == null ? "" : sr.ExamStatus,
|
||||||
EndDate = p.PeriodExam.RegisterEndDate == null ? "" : (p.PeriodExam.RegisterEndDate.Value.ToThaiFullDate3()),
|
EndDate = p.PeriodExam.RegisterEndDate == null ? "" : (p.PeriodExam.RegisterEndDate.Value.ToThaiFullDate3()),
|
||||||
AuthName = "นายณัฐพงศ์ ดิษยบุตร",
|
AuthName = p.PeriodExam.AuthName,
|
||||||
AuthPosition = "หัวหน้าสำนักงาน ก.ก."
|
AuthPosition = p.PeriodExam.AuthPosition
|
||||||
})
|
})
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
|
|
||||||
|
|
@ -443,7 +477,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
//University = p.Educations.First().University,
|
//University = p.Educations.First().University,
|
||||||
//PositionName = p.PositionName,
|
//PositionName = p.PositionName,
|
||||||
ExamName = $"{p.PeriodExam.Name} ครั้งที่ {p.PeriodExam.Round.ToString().ToThaiNumber()}/{p.PeriodExam.Year.Value.ToThaiYear().ToString().ToThaiNumber()}",
|
ExamName = $"{p.PeriodExam.Name} ครั้งที่ {p.PeriodExam.Round.ToString().ToThaiNumber()}/{p.PeriodExam.Year.Value.ToThaiYear().ToString().ToThaiNumber()}",
|
||||||
Number = sr == null ? "๐" : sr.Number,
|
Number = sr == null || sr.Number == null ? 0 : Convert.ToInt32(sr.Number),
|
||||||
//FullA = sr == null ? "๐" : (sr.FullA.ToString()),
|
//FullA = sr == null ? "๐" : (sr.FullA.ToString()),
|
||||||
//SumA = sr == null ? "๐" : (sr.SumA.ToString()),
|
//SumA = sr == null ? "๐" : (sr.SumA.ToString()),
|
||||||
//FullB = sr == null ? "๐" : (sr.FullB.ToString()),
|
//FullB = sr == null ? "๐" : (sr.FullB.ToString()),
|
||||||
|
|
@ -452,8 +486,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
//SumC = sr == null ? "๐" : (sr.SumC.ToString()),
|
//SumC = sr == null ? "๐" : (sr.SumC.ToString()),
|
||||||
SumScore = sr == null
|
SumScore = sr == null
|
||||||
? "๐"
|
? "๐"
|
||||||
//: (((sr.SumA > 0 ? sr.SumA : 0) + /*sr.SumB +*/ (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
|
: (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
|
||||||
: (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0 ) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
|
|
||||||
})
|
})
|
||||||
.OrderBy(x => x.Number)
|
.OrderBy(x => x.Number)
|
||||||
.Where(x => x.Id == id)
|
.Where(x => x.Id == id)
|
||||||
|
|
@ -462,10 +495,11 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
|
|
||||||
if (data.Count == 0)
|
if (data.Count == 0)
|
||||||
return Error("ไม่พบข้อมูลในระบบ");
|
return Error("ไม่พบข้อมูลในระบบ");
|
||||||
|
|
||||||
var data_ = data.Select(x => new
|
var data_ = data.Select(x => new
|
||||||
{
|
{
|
||||||
x.ExamName,
|
x.ExamName,
|
||||||
Number = x.Number.ToThaiNumber(),
|
Number = x.Number.ToString().ToThaiNumber(),
|
||||||
x.ExamId,
|
x.ExamId,
|
||||||
x.FullName,
|
x.FullName,
|
||||||
x.SumScore
|
x.SumScore
|
||||||
|
|
|
||||||
|
|
@ -75,23 +75,34 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var name = "";
|
var _data = await _context.Recruits.AsQueryable()
|
||||||
var position = "";
|
.Include(x => x.RecruitImport)
|
||||||
var apiUrl = $"{_configuration["API"]}/org/find/head/officer";
|
.Where(x => x.RecruitImport.Id == id)
|
||||||
using (var client = new HttpClient())
|
.Where(x => x.ExamId == examId)
|
||||||
{
|
.FirstOrDefaultAsync();
|
||||||
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
if (_data == null)
|
||||||
client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
|
return Error("ไม่พบข้อมูลในระบบ");
|
||||||
var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
|
|
||||||
var _res = await client.SendAsync(_req);
|
// if (_data.AuthName == null || _data.AuthName == "")
|
||||||
var _result = await _res.Content.ReadAsStringAsync();
|
// {
|
||||||
if (_res.IsSuccessStatusCode)
|
// var apiUrl = $"{_configuration["API"]}/org/find/head/officer";
|
||||||
{
|
// using (var client = new HttpClient())
|
||||||
var org = JsonConvert.DeserializeObject<dynamic>(_result);
|
// {
|
||||||
name = org.result.rootId == null ? "" : org.result.rootId;
|
// client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.Replace("Bearer ", ""));
|
||||||
position = org.result.rootId == null ? "" : org.result.rootId;
|
// client.DefaultRequestHeaders.Add("api_key", _configuration["API_KEY"]);
|
||||||
}
|
// var _req = new HttpRequestMessage(HttpMethod.Get, apiUrl);
|
||||||
}
|
// var _res = await client.SendAsync(_req);
|
||||||
|
// var _result = await _res.Content.ReadAsStringAsync();
|
||||||
|
// if (_res.IsSuccessStatusCode)
|
||||||
|
// {
|
||||||
|
// var org = JsonConvert.DeserializeObject<dynamic>(_result);
|
||||||
|
// _data.AuthName = org.result.name == null ? "" : org.result.name;
|
||||||
|
// _data.AuthPosition = org.result.position == null ? "" : org.result.position;
|
||||||
|
// await _context.SaveChangesAsync();
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
var data = await _context.Recruits.AsQueryable()
|
var data = await _context.Recruits.AsQueryable()
|
||||||
.Include(x => x.RecruitImport)
|
.Include(x => x.RecruitImport)
|
||||||
.Where(x => x.RecruitImport.Id == id)
|
.Where(x => x.RecruitImport.Id == id)
|
||||||
|
|
@ -109,8 +120,8 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
|
FullName = $"{p.Prefix}{p.FirstName} {p.LastName}",
|
||||||
ExamResult = sr == null ? "" : sr.ExamStatus,
|
ExamResult = sr == null ? "" : sr.ExamStatus,
|
||||||
EndDate = p.RecruitImport.RegisterEndDate == null ? "-" : p.RecruitImport.RegisterEndDate.Value.ToThaiFullDate3(),
|
EndDate = p.RecruitImport.RegisterEndDate == null ? "-" : p.RecruitImport.RegisterEndDate.Value.ToThaiFullDate3(),
|
||||||
AuthName = name,
|
AuthName = p.RecruitImport.AuthName,
|
||||||
AuthPosition = position
|
AuthPosition = p.RecruitImport.AuthPosition
|
||||||
})
|
})
|
||||||
.FirstOrDefaultAsync();
|
.FirstOrDefaultAsync();
|
||||||
if (data == null)
|
if (data == null)
|
||||||
|
|
@ -391,7 +402,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var data = await _context.Recruits.AsQueryable()
|
var data = await _context.Recruits.AsQueryable()
|
||||||
.Include(x => x.RecruitImport)
|
.Include(x => x.RecruitImport)
|
||||||
.ThenInclude(x => x.ScoreImport)
|
.ThenInclude(x => x.ScoreImport)
|
||||||
.Include(x => x.Documents)
|
.Include(x => x.Documents)
|
||||||
|
|
@ -424,8 +435,7 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
? ""
|
? ""
|
||||||
: $"{p.RecruitImport.Name} ครั้งที่ {p.RecruitImport.Order.ToString().ToThaiNumber()}/{p.RecruitImport.Year.ToThaiYear().ToString().ToThaiNumber()}",
|
: $"{p.RecruitImport.Name} ครั้งที่ {p.RecruitImport.Order.ToString().ToThaiNumber()}/{p.RecruitImport.Year.ToThaiYear().ToString().ToThaiNumber()}",
|
||||||
|
|
||||||
|
Number = sr == null || sr.Number == null ? 0 : Convert.ToInt32(sr.Number),
|
||||||
Number = sr.Number == null ? "๐" : sr.Number,
|
|
||||||
//ExamCount = _recruitService.GetExamCount(p.CitizenId),
|
//ExamCount = _recruitService.GetExamCount(p.CitizenId),
|
||||||
//ScoreExpire = p.RecruitImport.AnnouncementDate == null ? "" : p.RecruitImport.AnnouncementDate.Value.AddYears(2).ToThaiShortDate(),
|
//ScoreExpire = p.RecruitImport.AnnouncementDate == null ? "" : p.RecruitImport.AnnouncementDate.Value.AddYears(2).ToThaiShortDate(),
|
||||||
|
|
||||||
|
|
@ -438,19 +448,20 @@ namespace BMA.EHR.Report.Service.Controllers
|
||||||
//SumC = sr.SumC == null ? 0.0 : sr.SumC,
|
//SumC = sr.SumC == null ? 0.0 : sr.SumC,
|
||||||
SumScore = sr == null
|
SumScore = sr == null
|
||||||
? "๐"
|
? "๐"
|
||||||
: (((sr.SumA > 0 ? sr.SumA : 0) + /*sr.SumB +*/ (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
|
: (((sr.SumA > 0 ? sr.SumA : 0) + (sr.SumB > 0 ? sr.SumB : 0) + (sr.SumC > 0 ? sr.SumC : 0)).ToString()).ToThaiNumber(),
|
||||||
})
|
})
|
||||||
.OrderBy(x => x.Number)
|
.OrderBy(x => x.Number)
|
||||||
.Where(x => x.Id == id)
|
.Where(x => x.Id == id)
|
||||||
.Where(x => x.ExamResult == "ผ่าน")
|
.Where(x => x.ExamResult == "ผ่าน")
|
||||||
.ToListAsync();
|
.ToListAsync();
|
||||||
|
|
||||||
if (data.Count == 0) return Error("ไม่พบข้อมูลในระบบ");
|
if (data.Count == 0)
|
||||||
|
return Error("ไม่พบข้อมูลในระบบ");
|
||||||
|
|
||||||
var data_ = data.Select(x => new
|
var data_ = data.Select(x => new
|
||||||
{
|
{
|
||||||
x.ExamName,
|
x.ExamName,
|
||||||
Number = x.Number.ToThaiNumber(),
|
Number = x.Number.ToString().ToThaiNumber(),
|
||||||
x.ExamId,
|
x.ExamId,
|
||||||
x.FullName,
|
x.FullName,
|
||||||
x.SumScore
|
x.SumScore
|
||||||
|
|
|
||||||
|
|
@ -78,5 +78,15 @@ namespace BMA.EHR.Recurit.Exam.Service.Models.Disables
|
||||||
public DateTime ApplyDate { get; set; }
|
public DateTime ApplyDate { get; set; }
|
||||||
|
|
||||||
public string? PositionName { get; set; }
|
public string? PositionName { get; set; }
|
||||||
|
public string? PositionType { get; set; }
|
||||||
|
public string? PositionLevel { get; set; }
|
||||||
|
// public string? AuthName { get; set; }
|
||||||
|
// public string? AuthPosition { get; set; }
|
||||||
|
|
||||||
|
[Comment("บัญชีสอบ")]
|
||||||
|
public string? HddPosition { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Comment("ประเภทการสอบภาค ก.")]
|
||||||
|
public string? typeTest { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -88,6 +88,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Models
|
||||||
|
|
||||||
[Comment("สำนัก")]
|
[Comment("สำนัก")]
|
||||||
public string? Category { get; set; }
|
public string? Category { get; set; }
|
||||||
|
public string? AuthName { get; set; }
|
||||||
|
public string? AuthPosition { get; set; }
|
||||||
|
|
||||||
[Comment("รายชื่อคนสม้ครในรอบ")]
|
[Comment("รายชื่อคนสม้ครในรอบ")]
|
||||||
public List<Candidate> Candidate { get; set; } = new List<Candidate>();
|
public List<Candidate> Candidate { get; set; } = new List<Candidate>();
|
||||||
|
|
|
||||||
|
|
@ -78,5 +78,15 @@ namespace BMA.EHR.Recruit.Service.Models.Recruits
|
||||||
public DateTime ApplyDate { get; set; }
|
public DateTime ApplyDate { get; set; }
|
||||||
|
|
||||||
public string? PositionName { get; set; }
|
public string? PositionName { get; set; }
|
||||||
|
public string? PositionType { get; set; }
|
||||||
|
public string? PositionLevel { get; set; }
|
||||||
|
// public string? AuthName { get; set; }
|
||||||
|
// public string? AuthPosition { get; set; }
|
||||||
|
|
||||||
|
[Comment("บัญชีสอบ")]
|
||||||
|
public string? HddPosition { get; set; } = string.Empty;
|
||||||
|
|
||||||
|
[Comment("ประเภทการสอบภาค ก.")]
|
||||||
|
public string? typeTest { get; set; } = string.Empty;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,16 +6,16 @@ using BMA.EHR.Report.Service.Models;
|
||||||
|
|
||||||
namespace BMA.EHR.Recruit.Service.Models.Recruits
|
namespace BMA.EHR.Recruit.Service.Models.Recruits
|
||||||
{
|
{
|
||||||
public class RecruitImport : EntityBase
|
public class RecruitImport : EntityBase
|
||||||
{
|
{
|
||||||
[Required, Comment("ปีที่จัดการสอบ"), Column(Order = 1)]
|
[Required, Comment("ปีที่จัดการสอบ"), Column(Order = 1)]
|
||||||
public int Year { get; set; }
|
public int Year { get; set; }
|
||||||
|
|
||||||
[Required, MaxLength(250), Comment("ชื่อการสอบ"), Column(Order = 2)]
|
[Required, MaxLength(250), Comment("ชื่อการสอบ"), Column(Order = 2)]
|
||||||
public string Name { get; set; } = string.Empty;
|
public string Name { get; set; } = string.Empty;
|
||||||
|
|
||||||
[Required, Comment("ครั้งที่"), Column(Order = 3)]
|
[Required, Comment("ครั้งที่"), Column(Order = 3)]
|
||||||
public int Order { get; set; } = 1;
|
public int Order { get; set; } = 1;
|
||||||
|
|
||||||
[Column(Order = 4, TypeName = "text"), Comment("รายละเอียด")]
|
[Column(Order = 4, TypeName = "text"), Comment("รายละเอียด")]
|
||||||
public string? Detail { get; set; }
|
public string? Detail { get; set; }
|
||||||
|
|
@ -46,15 +46,17 @@ namespace BMA.EHR.Recruit.Service.Models.Recruits
|
||||||
|
|
||||||
[Column(Order = 13, TypeName = "text"), Comment("หมายเหตุ")]
|
[Column(Order = 13, TypeName = "text"), Comment("หมายเหตุ")]
|
||||||
public string? Note { get; set; }
|
public string? Note { get; set; }
|
||||||
|
public string? AuthName { get; set; }
|
||||||
|
public string? AuthPosition { get; set; }
|
||||||
|
|
||||||
public DateTime? AnnouncementDate { get; set; }
|
public DateTime? AnnouncementDate { get; set; }
|
||||||
|
|
||||||
public Document ImportFile { get; set; } = new Document();
|
public Document ImportFile { get; set; } = new Document();
|
||||||
|
|
||||||
public List<Recruit> Recruits { get; set; } = new List<Recruit>();
|
public List<Recruit> Recruits { get; set; } = new List<Recruit>();
|
||||||
|
|
||||||
public ScoreImport ScoreImport { get; set; }
|
public ScoreImport ScoreImport { get; set; }
|
||||||
|
|
||||||
public List<RecruitImportHistory> ImportHostories { get; set; } = new List<RecruitImportHistory>();
|
public List<RecruitImportHistory> ImportHostories { get; set; } = new List<RecruitImportHistory>();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue