From b457cb0a13d439b90f7b39fba41cd3490d8df0bf Mon Sep 17 00:00:00 2001 From: Nakorn Rientrakrunchai Date: Sun, 26 Jul 2020 23:00:14 +0700 Subject: [PATCH] =?UTF-8?q?=E0=B8=9B=E0=B8=A3=E0=B8=B1=E0=B8=9A=E0=B8=9B?= =?UTF-8?q?=E0=B8=A3=E0=B8=B8=E0=B8=87=20API=20=E0=B9=83=E0=B8=AB=E0=B9=89?= =?UTF-8?q?=E0=B8=A3=E0=B8=B1=E0=B8=9A=E0=B8=A3=E0=B8=B9=E0=B8=9B=E0=B8=A0?= =?UTF-8?q?=E0=B8=B2=E0=B8=9E=E0=B8=88=E0=B8=B2=E0=B8=81=E0=B8=81=E0=B8=B2?= =?UTF-8?q?=E0=B8=A3=E0=B8=AA=E0=B9=81=E0=B8=81=E0=B8=99=E0=B9=84=E0=B8=94?= =?UTF-8?q?=E0=B9=89=E0=B8=94=E0=B9=89=E0=B8=A7=E0=B8=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eva_temp_fingerscanService.cs | 57 +++++++++++++++++-- appsettings.Development.json | 3 +- appsettings.Production.json | 3 +- appsettings.Staging.json | 3 +- 4 files changed, 58 insertions(+), 8 deletions(-) diff --git a/Models/eva_temp_fingerscan/eva_temp_fingerscanService.cs b/Models/eva_temp_fingerscan/eva_temp_fingerscanService.cs index 68f96bf..33bc3ac 100644 --- a/Models/eva_temp_fingerscan/eva_temp_fingerscanService.cs +++ b/Models/eva_temp_fingerscan/eva_temp_fingerscanService.cs @@ -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 _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(json); + return u.path; + } + } + } + public string RecieveFingerScanFromLocal(List 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(); + + 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; } } } diff --git a/appsettings.Development.json b/appsettings.Development.json index 2238b61..b8d1c1c 100644 --- a/appsettings.Development.json +++ b/appsettings.Development.json @@ -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" } } diff --git a/appsettings.Production.json b/appsettings.Production.json index 6991700..9157de6 100644 --- a/appsettings.Production.json +++ b/appsettings.Production.json @@ -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" } } diff --git a/appsettings.Staging.json b/appsettings.Staging.json index d758323..c9db088 100644 --- a/appsettings.Staging.json +++ b/appsettings.Staging.json @@ -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" } }