test response นาน #1813
This commit is contained in:
parent
2b9cf97f3b
commit
6f36f71f60
1 changed files with 387 additions and 82 deletions
|
|
@ -1663,138 +1663,443 @@ namespace BMA.EHR.Recruit.Service.Controllers
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//[HttpPost("exam/{id:length(36)}")]
|
||||||
|
//public async Task<ActionResult<ResponseObject>> GetExamResultById([FromBody] RecruitExamRequest req, Guid id)
|
||||||
|
//{
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// var p_Id = new MySqlParameter("@id", id);
|
||||||
|
// var data = new List<dynamic>();
|
||||||
|
// using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
||||||
|
// {
|
||||||
|
// cmd.CommandTimeout = 0;
|
||||||
|
// var sb = new StringBuilder();
|
||||||
|
// cmd.Parameters.Clear();
|
||||||
|
// sb.Clear();
|
||||||
|
// sb.Append(" SELECT * ");
|
||||||
|
// sb.Append(" FROM exam_info ");
|
||||||
|
// sb.Append(" WHERE recruit_import_id = @id ");
|
||||||
|
// cmd.Parameters.Add(p_Id);
|
||||||
|
|
||||||
|
// if (req.ExamAttribute != null && req.ExamAttribute != "")
|
||||||
|
// {
|
||||||
|
// sb.Append(" AND examAttribute = @a ");
|
||||||
|
// cmd.Parameters.Add(new MySqlParameter("@a", req.ExamAttribute));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (req.ExamResult != null && req.ExamResult != "")
|
||||||
|
// {
|
||||||
|
// sb.Append(" AND result = @r ");
|
||||||
|
// cmd.Parameters.Add(new MySqlParameter("@r", req.ExamResult));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// sb.Append(" ORDER BY examID ");
|
||||||
|
// sb.Append(" LIMIT @PageSize OFFSET @Offset ");
|
||||||
|
// cmd.Parameters.Add(new MySqlParameter("@PageSize", req.PageSize));
|
||||||
|
// cmd.Parameters.Add(new MySqlParameter("@Offset", ((req.Page - 1) * req.PageSize)));
|
||||||
|
|
||||||
|
// cmd.CommandText = sb.ToString();
|
||||||
|
|
||||||
|
// _context.Database.OpenConnection();
|
||||||
|
// var da = new MySqlDataAdapter(cmd as MySqlCommand);
|
||||||
|
// var dt = new DataTable();
|
||||||
|
// da.Fill(dt);
|
||||||
|
|
||||||
|
// foreach (DataRow dr in dt.Rows)
|
||||||
|
// {
|
||||||
|
// data.Add(new
|
||||||
|
// {
|
||||||
|
// examID = dr["examID"].ToString(),
|
||||||
|
// profileID = dr["profileID"].ToString(),
|
||||||
|
// prefix = dr["prefix"].ToString(),
|
||||||
|
// fullName = dr["fullName"].ToString(),
|
||||||
|
// dateOfBirth = dr["dateofbirth"] == null || Convert.ToDateTime(dr["dateofbirth"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["dateofbirth"]).ToThaiShortDate(),
|
||||||
|
// gender = dr["gender"].ToString(),
|
||||||
|
// degree = dr["degree"].ToString(),
|
||||||
|
// major = dr["major"].ToString(),
|
||||||
|
// majorgroup = dr["majorgroup"].ToString(),
|
||||||
|
// certificateNo = dr["certificateno"].ToString(),
|
||||||
|
// certificateIssueDate = dr["certificateIssueDate"] == null || Convert.ToDateTime(dr["certificateIssueDate"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["certificateIssueDate"]).ToThaiShortDate(),
|
||||||
|
// ExamScore = string.IsNullOrWhiteSpace(dr["score"]?.ToString()) ? 0 : decimal.Parse(dr["score"]?.ToString()),
|
||||||
|
// ExamResult = dr["result"].ToString(),
|
||||||
|
// ExamAttribute = dr["examAttribute"].ToString(),
|
||||||
|
// Remark = dr["remark"].ToString(),
|
||||||
|
// IsSpecial = dr["isspecial"].ToString(),
|
||||||
|
// applyDate = dr["applydate"] == null || Convert.ToDateTime(dr["applydate"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["applydate"]).ToThaiShortDate(),
|
||||||
|
// university = dr["university"].ToString(),
|
||||||
|
// position_name = dr["position_name"].ToString(),
|
||||||
|
// hddPosition = dr["hddPosition"].ToString(),
|
||||||
|
// typeTest = dr["typeTest"].ToString(),
|
||||||
|
// position_level = dr["position_level"].ToString(),
|
||||||
|
// position_type = dr["position_type"].ToString(),
|
||||||
|
// exam_name = dr["exam_name"].ToString(),
|
||||||
|
// exam_order = dr["exam_order"].ToString(),
|
||||||
|
// score_year = Convert.ToInt32(dr["score_year"]).ToThaiYear().ToString(),
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //if (data != null && data.Count > 0)
|
||||||
|
// // data = data.Skip((req.Page - 1) * req.PageSize).Take(req.PageSize).ToList();
|
||||||
|
|
||||||
|
// dynamic header = null;
|
||||||
|
// using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
||||||
|
// {
|
||||||
|
// var sb = new StringBuilder();
|
||||||
|
// cmd.CommandTimeout = 0;
|
||||||
|
// cmd.Parameters.Clear();
|
||||||
|
// sb.Clear();
|
||||||
|
// sb.Append(" SELECT * ");
|
||||||
|
// sb.Append(" FROM sum_exam_info ");
|
||||||
|
// sb.Append(" WHERE recruit_import_id = @id ");
|
||||||
|
// cmd.Parameters.Add(p_Id);
|
||||||
|
|
||||||
|
// cmd.CommandText = sb.ToString();
|
||||||
|
|
||||||
|
|
||||||
|
// _context.Database.OpenConnection();
|
||||||
|
// MySqlDataAdapter da = new MySqlDataAdapter(cmd as MySqlCommand);
|
||||||
|
// DataTable dt = new DataTable();
|
||||||
|
// da.Fill(dt);
|
||||||
|
// if (dt.Rows.Count == 0)
|
||||||
|
// {
|
||||||
|
// header = new
|
||||||
|
// {
|
||||||
|
// count = 0,
|
||||||
|
// pass = 0,
|
||||||
|
// notpass = 0,
|
||||||
|
// missed_exam = 0,
|
||||||
|
// other = 0
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// var dr = dt.Rows[0];
|
||||||
|
// header = new
|
||||||
|
// {
|
||||||
|
// count = dr["count"].ToString().ToInteger(),
|
||||||
|
// pass = dr["pass"].ToString().ToInteger(),
|
||||||
|
// notpass = dr["notpass"].ToString().ToInteger(),
|
||||||
|
// missed_exam = dr["missed_exam"].ToString().ToInteger(),
|
||||||
|
// other = dr["other"].ToString().ToInteger()
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// var period = await _context.RecruitImports.AsQueryable()
|
||||||
|
// .Select(x => new
|
||||||
|
// {
|
||||||
|
// x.Id,
|
||||||
|
// Year = x.Year.ToThaiYear(),
|
||||||
|
// x.Order,
|
||||||
|
// x.Name,
|
||||||
|
// })
|
||||||
|
// .FirstOrDefaultAsync(x => x.Id == id);
|
||||||
|
|
||||||
|
// return Success(new
|
||||||
|
// {
|
||||||
|
// data = data,
|
||||||
|
// header = header,
|
||||||
|
// period = period,
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// catch (Exception ex)
|
||||||
|
// {
|
||||||
|
// return Error(ex);
|
||||||
|
// }
|
||||||
|
//} //[HttpPost("exam/{id:length(36)}")]
|
||||||
|
//public async Task<ActionResult<ResponseObject>> GetExamResultById([FromBody] RecruitExamRequest req, Guid id)
|
||||||
|
//{
|
||||||
|
// try
|
||||||
|
// {
|
||||||
|
// var p_Id = new MySqlParameter("@id", id);
|
||||||
|
// var data = new List<dynamic>();
|
||||||
|
// using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
||||||
|
// {
|
||||||
|
// cmd.CommandTimeout = 0;
|
||||||
|
// var sb = new StringBuilder();
|
||||||
|
// cmd.Parameters.Clear();
|
||||||
|
// sb.Clear();
|
||||||
|
// sb.Append(" SELECT * ");
|
||||||
|
// sb.Append(" FROM exam_info ");
|
||||||
|
// sb.Append(" WHERE recruit_import_id = @id ");
|
||||||
|
// cmd.Parameters.Add(p_Id);
|
||||||
|
|
||||||
|
// if (req.ExamAttribute != null && req.ExamAttribute != "")
|
||||||
|
// {
|
||||||
|
// sb.Append(" AND examAttribute = @a ");
|
||||||
|
// cmd.Parameters.Add(new MySqlParameter("@a", req.ExamAttribute));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// if (req.ExamResult != null && req.ExamResult != "")
|
||||||
|
// {
|
||||||
|
// sb.Append(" AND result = @r ");
|
||||||
|
// cmd.Parameters.Add(new MySqlParameter("@r", req.ExamResult));
|
||||||
|
// }
|
||||||
|
|
||||||
|
// sb.Append(" ORDER BY examID ");
|
||||||
|
// sb.Append(" LIMIT @PageSize OFFSET @Offset ");
|
||||||
|
// cmd.Parameters.Add(new MySqlParameter("@PageSize", req.PageSize));
|
||||||
|
// cmd.Parameters.Add(new MySqlParameter("@Offset", ((req.Page - 1) * req.PageSize)));
|
||||||
|
|
||||||
|
// cmd.CommandText = sb.ToString();
|
||||||
|
|
||||||
|
// _context.Database.OpenConnection();
|
||||||
|
// var da = new MySqlDataAdapter(cmd as MySqlCommand);
|
||||||
|
// var dt = new DataTable();
|
||||||
|
// da.Fill(dt);
|
||||||
|
|
||||||
|
// foreach (DataRow dr in dt.Rows)
|
||||||
|
// {
|
||||||
|
// data.Add(new
|
||||||
|
// {
|
||||||
|
// examID = dr["examID"].ToString(),
|
||||||
|
// profileID = dr["profileID"].ToString(),
|
||||||
|
// prefix = dr["prefix"].ToString(),
|
||||||
|
// fullName = dr["fullName"].ToString(),
|
||||||
|
// dateOfBirth = dr["dateofbirth"] == null || Convert.ToDateTime(dr["dateofbirth"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["dateofbirth"]).ToThaiShortDate(),
|
||||||
|
// gender = dr["gender"].ToString(),
|
||||||
|
// degree = dr["degree"].ToString(),
|
||||||
|
// major = dr["major"].ToString(),
|
||||||
|
// majorgroup = dr["majorgroup"].ToString(),
|
||||||
|
// certificateNo = dr["certificateno"].ToString(),
|
||||||
|
// certificateIssueDate = dr["certificateIssueDate"] == null || Convert.ToDateTime(dr["certificateIssueDate"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["certificateIssueDate"]).ToThaiShortDate(),
|
||||||
|
// ExamScore = string.IsNullOrWhiteSpace(dr["score"]?.ToString()) ? 0 : decimal.Parse(dr["score"]?.ToString()),
|
||||||
|
// ExamResult = dr["result"].ToString(),
|
||||||
|
// ExamAttribute = dr["examAttribute"].ToString(),
|
||||||
|
// Remark = dr["remark"].ToString(),
|
||||||
|
// IsSpecial = dr["isspecial"].ToString(),
|
||||||
|
// applyDate = dr["applydate"] == null || Convert.ToDateTime(dr["applydate"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["applydate"]).ToThaiShortDate(),
|
||||||
|
// university = dr["university"].ToString(),
|
||||||
|
// position_name = dr["position_name"].ToString(),
|
||||||
|
// hddPosition = dr["hddPosition"].ToString(),
|
||||||
|
// typeTest = dr["typeTest"].ToString(),
|
||||||
|
// position_level = dr["position_level"].ToString(),
|
||||||
|
// position_type = dr["position_type"].ToString(),
|
||||||
|
// exam_name = dr["exam_name"].ToString(),
|
||||||
|
// exam_order = dr["exam_order"].ToString(),
|
||||||
|
// score_year = Convert.ToInt32(dr["score_year"]).ToThaiYear().ToString(),
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
// //if (data != null && data.Count > 0)
|
||||||
|
// // data = data.Skip((req.Page - 1) * req.PageSize).Take(req.PageSize).ToList();
|
||||||
|
|
||||||
|
// dynamic header = null;
|
||||||
|
// using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
||||||
|
// {
|
||||||
|
// var sb = new StringBuilder();
|
||||||
|
// cmd.CommandTimeout = 0;
|
||||||
|
// cmd.Parameters.Clear();
|
||||||
|
// sb.Clear();
|
||||||
|
// sb.Append(" SELECT * ");
|
||||||
|
// sb.Append(" FROM sum_exam_info ");
|
||||||
|
// sb.Append(" WHERE recruit_import_id = @id ");
|
||||||
|
// cmd.Parameters.Add(p_Id);
|
||||||
|
|
||||||
|
// cmd.CommandText = sb.ToString();
|
||||||
|
|
||||||
|
|
||||||
|
// _context.Database.OpenConnection();
|
||||||
|
// MySqlDataAdapter da = new MySqlDataAdapter(cmd as MySqlCommand);
|
||||||
|
// DataTable dt = new DataTable();
|
||||||
|
// da.Fill(dt);
|
||||||
|
// if (dt.Rows.Count == 0)
|
||||||
|
// {
|
||||||
|
// header = new
|
||||||
|
// {
|
||||||
|
// count = 0,
|
||||||
|
// pass = 0,
|
||||||
|
// notpass = 0,
|
||||||
|
// missed_exam = 0,
|
||||||
|
// other = 0
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// else
|
||||||
|
// {
|
||||||
|
// var dr = dt.Rows[0];
|
||||||
|
// header = new
|
||||||
|
// {
|
||||||
|
// count = dr["count"].ToString().ToInteger(),
|
||||||
|
// pass = dr["pass"].ToString().ToInteger(),
|
||||||
|
// notpass = dr["notpass"].ToString().ToInteger(),
|
||||||
|
// missed_exam = dr["missed_exam"].ToString().ToInteger(),
|
||||||
|
// other = dr["other"].ToString().ToInteger()
|
||||||
|
// };
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// var period = await _context.RecruitImports.AsQueryable()
|
||||||
|
// .Select(x => new
|
||||||
|
// {
|
||||||
|
// x.Id,
|
||||||
|
// Year = x.Year.ToThaiYear(),
|
||||||
|
// x.Order,
|
||||||
|
// x.Name,
|
||||||
|
// })
|
||||||
|
// .FirstOrDefaultAsync(x => x.Id == id);
|
||||||
|
|
||||||
|
// return Success(new
|
||||||
|
// {
|
||||||
|
// data = data,
|
||||||
|
// header = header,
|
||||||
|
// period = period,
|
||||||
|
// });
|
||||||
|
// }
|
||||||
|
// catch (Exception ex)
|
||||||
|
// {
|
||||||
|
// return Error(ex);
|
||||||
|
// }
|
||||||
|
//}
|
||||||
|
|
||||||
[HttpPost("exam/{id:length(36)}")]
|
[HttpPost("exam/{id:length(36)}")]
|
||||||
public async Task<ActionResult<ResponseObject>> GetExamResultById([FromBody] RecruitExamRequest req, Guid id)
|
public async Task<ActionResult<ResponseObject>> GetExamResultById([FromBody] RecruitExamRequest req, Guid id)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var p_Id = new MySqlParameter("@id", id);
|
|
||||||
var data = new List<dynamic>();
|
var data = new List<dynamic>();
|
||||||
|
var p_Id = new MySqlParameter("@id", id);
|
||||||
|
|
||||||
|
// ---------------------------
|
||||||
|
// 1️⃣ ดึงรายละเอียดสอบ (exam_info)
|
||||||
|
// ---------------------------
|
||||||
using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
||||||
{
|
{
|
||||||
cmd.CommandTimeout = 0;
|
cmd.CommandTimeout = 0;
|
||||||
var sb = new StringBuilder();
|
var sb = new StringBuilder();
|
||||||
|
|
||||||
|
// ปรับ SELECT * → SELECT เฉพาะ field ที่ C# ใช้
|
||||||
|
sb.Append(@"
|
||||||
|
SELECT
|
||||||
|
examID, profileID, prefix, fullName, dateofbirth, gender, degree, major, majorgroup,
|
||||||
|
certificateno, certificateIssueDate, score, result, examAttribute, remark, isspecial,
|
||||||
|
applydate, university, position_name, hddPosition, typeTest, position_level, position_type,
|
||||||
|
exam_name, exam_order, score_year
|
||||||
|
FROM exam_info
|
||||||
|
WHERE recruit_import_id = @id
|
||||||
|
");
|
||||||
|
|
||||||
cmd.Parameters.Clear();
|
cmd.Parameters.Clear();
|
||||||
sb.Clear();
|
|
||||||
sb.Append(" SELECT * ");
|
|
||||||
sb.Append(" FROM exam_info ");
|
|
||||||
sb.Append(" WHERE recruit_import_id = @id ");
|
|
||||||
cmd.Parameters.Add(p_Id);
|
cmd.Parameters.Add(p_Id);
|
||||||
|
|
||||||
if (req.ExamAttribute != null && req.ExamAttribute != "")
|
// เพิ่ม dynamic filter
|
||||||
|
if (!string.IsNullOrWhiteSpace(req.ExamAttribute))
|
||||||
{
|
{
|
||||||
sb.Append(" AND examAttribute = @a ");
|
sb.Append(" AND examAttribute = @a ");
|
||||||
cmd.Parameters.Add(new MySqlParameter("@a", req.ExamAttribute));
|
cmd.Parameters.Add(new MySqlParameter("@a", req.ExamAttribute));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (req.ExamResult != null && req.ExamResult != "")
|
if (!string.IsNullOrWhiteSpace(req.ExamResult))
|
||||||
{
|
{
|
||||||
sb.Append(" AND result = @r ");
|
sb.Append(" AND result = @r ");
|
||||||
cmd.Parameters.Add(new MySqlParameter("@r", req.ExamResult));
|
cmd.Parameters.Add(new MySqlParameter("@r", req.ExamResult));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Paging และ sorting
|
||||||
sb.Append(" ORDER BY examID ");
|
sb.Append(" ORDER BY examID ");
|
||||||
sb.Append(" LIMIT @PageSize OFFSET @Offset ");
|
sb.Append(" LIMIT @PageSize OFFSET @Offset ");
|
||||||
cmd.Parameters.Add(new MySqlParameter("@PageSize", req.PageSize));
|
cmd.Parameters.Add(new MySqlParameter("@PageSize", req.PageSize));
|
||||||
cmd.Parameters.Add(new MySqlParameter("@Offset", ((req.Page - 1) * req.PageSize)));
|
cmd.Parameters.Add(new MySqlParameter("@Offset", (req.Page - 1) * req.PageSize));
|
||||||
|
|
||||||
cmd.CommandText = sb.ToString();
|
cmd.CommandText = sb.ToString();
|
||||||
|
|
||||||
_context.Database.OpenConnection();
|
_context.Database.OpenConnection();
|
||||||
var da = new MySqlDataAdapter(cmd as MySqlCommand);
|
|
||||||
var dt = new DataTable();
|
|
||||||
da.Fill(dt);
|
|
||||||
|
|
||||||
foreach (DataRow dr in dt.Rows)
|
// ---------------------------
|
||||||
|
// 2️⃣ ใช้ DbDataReader แทน DataTable → ประหยัด memory และเร็วขึ้น
|
||||||
|
// ---------------------------
|
||||||
|
using (var reader = cmd.ExecuteReader())
|
||||||
{
|
{
|
||||||
data.Add(new
|
while (reader.Read())
|
||||||
{
|
{
|
||||||
examID = dr["examID"].ToString(),
|
data.Add(new
|
||||||
profileID = dr["profileID"].ToString(),
|
{
|
||||||
prefix = dr["prefix"].ToString(),
|
examID = reader["examID"].ToString(),
|
||||||
fullName = dr["fullName"].ToString(),
|
profileID = reader["profileID"].ToString(),
|
||||||
dateOfBirth = dr["dateofbirth"] == null || Convert.ToDateTime(dr["dateofbirth"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["dateofbirth"]).ToThaiShortDate(),
|
prefix = reader["prefix"].ToString(),
|
||||||
gender = dr["gender"].ToString(),
|
fullName = reader["fullName"].ToString(),
|
||||||
degree = dr["degree"].ToString(),
|
dateOfBirth = reader["dateofbirth"] == DBNull.Value ? "" : Convert.ToDateTime(reader["dateofbirth"]).ToThaiShortDate(),
|
||||||
major = dr["major"].ToString(),
|
gender = reader["gender"].ToString(),
|
||||||
majorgroup = dr["majorgroup"].ToString(),
|
degree = reader["degree"].ToString(),
|
||||||
certificateNo = dr["certificateno"].ToString(),
|
major = reader["major"].ToString(),
|
||||||
certificateIssueDate = dr["certificateIssueDate"] == null || Convert.ToDateTime(dr["certificateIssueDate"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["certificateIssueDate"]).ToThaiShortDate(),
|
majorgroup = reader["majorgroup"].ToString(),
|
||||||
ExamScore = string.IsNullOrWhiteSpace(dr["score"]?.ToString()) ? 0 : decimal.Parse(dr["score"]?.ToString()),
|
certificateNo = reader["certificateno"].ToString(),
|
||||||
ExamResult = dr["result"].ToString(),
|
certificateIssueDate = reader["certificateIssueDate"] == DBNull.Value ? "" : Convert.ToDateTime(reader["certificateIssueDate"]).ToThaiShortDate(),
|
||||||
ExamAttribute = dr["examAttribute"].ToString(),
|
ExamScore = reader["score"] == DBNull.Value ? 0 : Convert.ToDecimal(reader["score"]),
|
||||||
Remark = dr["remark"].ToString(),
|
ExamResult = reader["result"].ToString(),
|
||||||
IsSpecial = dr["isspecial"].ToString(),
|
ExamAttribute = reader["examAttribute"].ToString(),
|
||||||
applyDate = dr["applydate"] == null || Convert.ToDateTime(dr["applydate"]) == DateTime.MinValue ? "" : Convert.ToDateTime(dr["applydate"]).ToThaiShortDate(),
|
Remark = reader["remark"].ToString(),
|
||||||
university = dr["university"].ToString(),
|
IsSpecial = reader["isspecial"].ToString(),
|
||||||
position_name = dr["position_name"].ToString(),
|
applyDate = reader["applydate"] == DBNull.Value ? "" : Convert.ToDateTime(reader["applydate"]).ToThaiShortDate(),
|
||||||
hddPosition = dr["hddPosition"].ToString(),
|
university = reader["university"].ToString(),
|
||||||
typeTest = dr["typeTest"].ToString(),
|
position_name = reader["position_name"].ToString(),
|
||||||
position_level = dr["position_level"].ToString(),
|
hddPosition = reader["hddPosition"].ToString(),
|
||||||
position_type = dr["position_type"].ToString(),
|
typeTest = reader["typeTest"].ToString(),
|
||||||
exam_name = dr["exam_name"].ToString(),
|
position_level = reader["position_level"].ToString(),
|
||||||
exam_order = dr["exam_order"].ToString(),
|
position_type = reader["position_type"].ToString(),
|
||||||
score_year = Convert.ToInt32(dr["score_year"]).ToThaiYear().ToString(),
|
exam_name = reader["exam_name"].ToString(),
|
||||||
});
|
exam_order = reader["exam_order"].ToString(),
|
||||||
|
score_year = Convert.ToInt32(reader["score_year"]).ToThaiYear().ToString()
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//if (data != null && data.Count > 0)
|
// ---------------------------
|
||||||
// data = data.Skip((req.Page - 1) * req.PageSize).Take(req.PageSize).ToList();
|
// 3️⃣ ดึงสรุปคะแนน (sum_exam_info)
|
||||||
|
// ---------------------------
|
||||||
dynamic header = null;
|
dynamic header = null;
|
||||||
using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
using (var cmd = _context.Database.GetDbConnection().CreateCommand())
|
||||||
{
|
{
|
||||||
var sb = new StringBuilder();
|
|
||||||
cmd.CommandTimeout = 0;
|
cmd.CommandTimeout = 0;
|
||||||
|
var sb = new StringBuilder();
|
||||||
cmd.Parameters.Clear();
|
cmd.Parameters.Clear();
|
||||||
sb.Clear();
|
sb.Append(" SELECT count, pass, notpass, missed_exam, other FROM sum_exam_info WHERE recruit_import_id = @id ");
|
||||||
sb.Append(" SELECT * ");
|
|
||||||
sb.Append(" FROM sum_exam_info ");
|
|
||||||
sb.Append(" WHERE recruit_import_id = @id ");
|
|
||||||
cmd.Parameters.Add(p_Id);
|
cmd.Parameters.Add(p_Id);
|
||||||
|
|
||||||
cmd.CommandText = sb.ToString();
|
cmd.CommandText = sb.ToString();
|
||||||
|
|
||||||
|
|
||||||
_context.Database.OpenConnection();
|
_context.Database.OpenConnection();
|
||||||
MySqlDataAdapter da = new MySqlDataAdapter(cmd as MySqlCommand);
|
|
||||||
DataTable dt = new DataTable();
|
using (var reader = cmd.ExecuteReader())
|
||||||
da.Fill(dt);
|
|
||||||
if (dt.Rows.Count == 0)
|
|
||||||
{
|
{
|
||||||
header = new
|
if (!reader.HasRows)
|
||||||
{
|
{
|
||||||
count = 0,
|
header = new
|
||||||
pass = 0,
|
{
|
||||||
notpass = 0,
|
count = 0,
|
||||||
missed_exam = 0,
|
pass = 0,
|
||||||
other = 0
|
notpass = 0,
|
||||||
};
|
missed_exam = 0,
|
||||||
}
|
other = 0
|
||||||
else
|
};
|
||||||
{
|
}
|
||||||
var dr = dt.Rows[0];
|
else
|
||||||
header = new
|
|
||||||
{
|
{
|
||||||
count = dr["count"].ToString().ToInteger(),
|
reader.Read();
|
||||||
pass = dr["pass"].ToString().ToInteger(),
|
header = new
|
||||||
notpass = dr["notpass"].ToString().ToInteger(),
|
{
|
||||||
missed_exam = dr["missed_exam"].ToString().ToInteger(),
|
count = reader["count"].ToString().ToInteger(),
|
||||||
other = dr["other"].ToString().ToInteger()
|
pass = reader["pass"].ToString().ToInteger(),
|
||||||
};
|
notpass = reader["notpass"].ToString().ToInteger(),
|
||||||
|
missed_exam = reader["missed_exam"].ToString().ToInteger(),
|
||||||
|
other = reader["other"].ToString().ToInteger()
|
||||||
|
};
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---------------------------
|
||||||
|
// 4️⃣ ดึง period
|
||||||
|
// ---------------------------
|
||||||
var period = await _context.RecruitImports.AsQueryable()
|
var period = await _context.RecruitImports.AsQueryable()
|
||||||
.Select(x => new
|
.Select(x => new
|
||||||
{
|
{
|
||||||
x.Id,
|
x.Id,
|
||||||
Year = x.Year.ToThaiYear(),
|
Year = x.Year.ToThaiYear(),
|
||||||
x.Order,
|
x.Order,
|
||||||
x.Name,
|
x.Name,
|
||||||
})
|
})
|
||||||
.FirstOrDefaultAsync(x => x.Id == id);
|
.FirstOrDefaultAsync(x => x.Id == id);
|
||||||
|
|
||||||
return Success(new
|
return Success(new
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue