ปรับปรุง api รับค่าการสแกนนิ้ว เพิ่มเติม

This commit is contained in:
Nakorn Rientrakrunchai
2020-07-27 08:40:44 +07:00
parent b457cb0a13
commit 7e7de0b9f4
4 changed files with 59 additions and 57 deletions

View File

@@ -137,43 +137,43 @@ namespace TodoAPI2.Controllers
}
}
/// <summary>
/// InsertFingerScanToHR
/// </summary>
/// <remarks>
/// </remarks>
/// <param name="model"></param>
/// <returns>Response Result Message</returns>
/// <response code="200">Response Result Message</response>
/// <response code="400">If the model is invalid</response>
/// <response code="500">Error Occurred</response>
[HttpPost("InsertFingerScanToHR")]
[ProducesResponseType(typeof(CommonResponseMessage), 200)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
//[ValidateAntiForgeryToken]
public IActionResult InsertFingerScanToHR([FromBody] List<string> model)
{
if (ModelState.IsValid)
{
try
{
string rowCount = _repository.InsertFingerScanToHR(model);
var message = new CommonResponseMessage();
message.code = "200";
message.message = "เพิ่มข้อมูลเรียบร้อย จำนวน " + rowCount + " รายการ";
message.data = null;
return Ok(message);
}
catch (Exception ex)
{
_logger.LogCritical($"InsertFingerScanToHR.", ex);
return StatusCode(500, $"{ex.Message}");
}
}
///// <summary>
///// InsertFingerScanToHR
///// </summary>
///// <remarks>
///// </remarks>
///// <param name="model"></param>
///// <returns>Response Result Message</returns>
///// <response code="200">Response Result Message</response>
///// <response code="400">If the model is invalid</response>
///// <response code="500">Error Occurred</response>
//[HttpPost("InsertFingerScanToHR")]
//[ProducesResponseType(typeof(CommonResponseMessage), 200)]
//[ProducesResponseType(400)]
//[ProducesResponseType(500)]
////[ValidateAntiForgeryToken]
//public IActionResult InsertFingerScanToHR([FromBody] List<string> model)
//{
// if (ModelState.IsValid)
// {
// try
// {
// string rowCount = _repository.InsertFingerScanToHR(model);
// var message = new CommonResponseMessage();
// message.code = "200";
// message.message = "เพิ่มข้อมูลเรียบร้อย จำนวน " + rowCount + " รายการ";
// message.data = null;
// return Ok(message);
// }
// catch (Exception ex)
// {
// _logger.LogCritical($"InsertFingerScanToHR.", ex);
// return StatusCode(500, $"{ex.Message}");
// }
// }
return BadRequest(ModelState);
}
// return BadRequest(ModelState);
//}
/// <summary>
/// RecieveFingerScanFromLocal

View File

@@ -15,7 +15,7 @@ namespace TodoAPI2.Models
List<eva_temp_fingerscanViewModel> GetListBybadgenumber(string badgenumber);
List<eva_temp_fingerscanViewModel> GetListBySearch(eva_temp_fingerscanSearchModel model);
eva_temp_fingerscanWithSelectionViewModel GetBlankItem();
string InsertFingerScanToHR(List<string> model);
string InsertFingerScanToHR(List<input_finger> model);
string RecieveFingerScanFromLocal(List<fingerscanDataModel> model);
}
}

View File

@@ -27,6 +27,13 @@ namespace TodoAPI2.Models
public string path { get; set; }
}
public class input_finger
{
public string data { get; set; }
public string base64_img { get; set; }
public string image_id { get; set; }
}
public class eva_temp_fingerscanService : Ieva_temp_fingerscanService
{
private IBaseRepository2<eva_temp_fingerscanEntity, string> _repository;
@@ -208,38 +215,45 @@ namespace TodoAPI2.Models
// join e in all_emp on ClearName(i.fullname) equals ClearName(e.halfname)
// select e.id.ToString() + "#" + GetDateStringForDB(i.checktime) + "#" + GetTimeStringForDB(i.checktime)).ToList();
var result = new List<string>();
var result = new List<input_finger>();
foreach (var i in model)
{
var id = (from e in all_emp
where ClearName(i.fullname) == ClearName(e.halfname)
select e.id.ToString()).FirstOrDefault().ToString();
byte[] imageBytes = Convert.FromBase64String(i.base64img);
var r = PostAttachment(imageBytes, "jk" + i.image_id + ".jpg");
var r2 = id + "#" + GetDateStringForDB(i.checktime) + "#" + GetTimeStringForDB(i.checktime) + "#" + r;
result.Add(r2);
if (!string.IsNullOrEmpty(id))
{
var r2 = id + "#" + GetDateStringForDB(i.checktime) + "#" + GetTimeStringForDB(i.checktime);
var a = new input_finger();
a.data = r2;
a.base64_img = i.base64img;
a.image_id = i.image_id;
result.Add(a);
}
}
return InsertFingerScanToHR(result);
}
public string InsertFingerScanToHR(List<string> model)
public string InsertFingerScanToHR(List<input_finger> model)
{
int count_insert = 0;
foreach (var i in model)
{
var data = i.Split('#');
var data = i.data.Split('#');
string employee_id = data[0];
string date = data[1];
string time = data[2];
string picture = data[3];
string sql_checking = $"select employee_id,date,time from tad_time_attendances where employee_id={employee_id} and date='{date}' and time='{time}' ";
DataTable dt = db.ExecuteDataTableNpgsql(sql_checking, null);
if (dt.Rows.Count == 0)
{
byte[] imageBytes = Convert.FromBase64String(i.base64_img);
var picture = PostAttachment(imageBytes, "jk" + i.image_id + ".jpg");
string sql_insert = $"insert into tad_time_attendances(employee_id,date,time,picture) values({employee_id},'{date}','{time}','{picture}')";
db.ExecuteNonQueryNpgsql(sql_insert, null);
count_insert++;

View File

@@ -3208,18 +3208,6 @@
<response code="200">Returns the item</response>
<response code="500">Error Occurred</response>
</member>
<member name="M:TodoAPI2.Controllers.eva_temp_fingerscanController.InsertFingerScanToHR(System.Collections.Generic.List{System.String})">
<summary>
InsertFingerScanToHR
</summary>
<remarks>
</remarks>
<param name="model"></param>
<returns>Response Result Message</returns>
<response code="200">Response Result Message</response>
<response code="400">If the model is invalid</response>
<response code="500">Error Occurred</response>
</member>
<member name="M:TodoAPI2.Controllers.eva_temp_fingerscanController.RecieveFingerScanFromLocal(System.Collections.Generic.List{TodoAPI2.Models.fingerscanDataModel})">
<summary>
RecieveFingerScanFromLocal