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" } }