ปรับปรุง API ให้รับรูปภาพจากการสแกนได้ด้วย

This commit is contained in:
Nakorn Rientrakrunchai
2020-07-26 23:00:14 +07:00
parent a76f746961
commit b457cb0a13
4 changed files with 58 additions and 8 deletions

View File

@@ -16,9 +16,17 @@ using Microsoft.Extensions.Options;
using System.Data;
using System.Data.Odbc;
using Microsoft.Extensions.Configuration;
using System.Net.Http;
using System.Net.Http.Headers;
using Newtonsoft.Json;
namespace TodoAPI2.Models
{
public class upload_result
{
public string path { get; set; }
}
public class eva_temp_fingerscanService : Ieva_temp_fingerscanService
{
private IBaseRepository2<eva_temp_fingerscanEntity, string> _repository;
@@ -170,13 +178,48 @@ namespace TodoAPI2.Models
.Replace("ผศ.ดร.", "");
}
private string PostAttachment(byte[] data, string filename)
{
HttpContent content = new ByteArrayContent(data);
content.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");
using (var form = new MultipartFormDataContent())
{
form.Add(content, "file", filename);
using (var client = new HttpClient())
{
var url = MyHelper.GetConfig(Configuration, "SiteInformation:hr_upload_api");
var response = client.PostAsync(url, form).Result;
response.EnsureSuccessStatusCode();
var json = response.Content.ReadAsStringAsync().Result;
upload_result u = JsonConvert.DeserializeObject<upload_result>(json);
return u.path;
}
}
}
public string RecieveFingerScanFromLocal(List<fingerscanDataModel> model)
{
var all_emp = emp.GetListByemployee_type(null, null);
var result = (from i in model
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 = (from i in model
// 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>();
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);
}
return InsertFingerScanToHR(result);
}
@@ -190,14 +233,14 @@ namespace TodoAPI2.Models
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)
{
string sql_insert = $"insert into tad_time_attendances(employee_id,date,time) values({employee_id},'{date}','{time}')";
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++;
}
@@ -228,6 +271,10 @@ namespace TodoAPI2.Models
public DateTime checktime { get; set; }
public string fullname { get; set; }
public string device_id { get; set; }
public string image_id { get; set; }
public string base64img { get; set; }
}
}

View File

@@ -39,7 +39,8 @@
"mainsite": "http://tb320dev.zd.co.th",
"modulesite": "http://tb320dev.zd.co.th/menu/evaluation",
"sitename": "เนติบัณฑิตยสภา ในพระบรมราชูปถัมภ์",
"modulename": "ระบบประวัติเงินเดือนและการเลื่อนเงินเดือน"
"modulename": "ระบบประวัติเงินเดือนและการเลื่อนเงินเดือน",
"hr_upload_api": "http://tb-320.zd.co.th/api/file/upload"
}
}

View File

@@ -39,7 +39,8 @@
"mainsite": "http://tb320.zd.co.th",
"modulesite": "http://tb320.zd.co.th/menu/evaluation",
"sitename": "เนติบัณฑิตยสภา ในพระบรมราชูปถัมภ์",
"modulename": "ระบบประวัติเงินเดือนและการเลื่อนเงินเดือน"
"modulename": "ระบบประวัติเงินเดือนและการเลื่อนเงินเดือน",
"hr_upload_api": "http://tb-320.zd.co.th/api/file/upload"
}
}

View File

@@ -39,7 +39,8 @@
"mainsite": "http://tb320dev.zd.co.th",
"modulesite": "http://tb320dev.zd.co.th/menu/evaluation",
"sitename": "เนติบัณฑิตยสภา ในพระบรมราชูปถัมภ์",
"modulename": "ระบบประวัติเงินเดือนและการเลื่อนเงินเดือน"
"modulename": "ระบบประวัติเงินเดือนและการเลื่อนเงินเดือน",
"hr_upload_api": "http://tb-320.zd.co.th/api/file/upload"
}
}