//public async Task<ReturnMsgViewModel> CheckinOutdoorAsync(CheckinOutdoorViewModel dataCheckin) //{ // ReturnMsgViewModel data = new ReturnMsgViewModel(); // data.message = new messageModel(); // try // { // var dt = DateTime.Now; // var userId = JwtHelper.GetUserIdFromToken(HttpContext); // if (String.IsNullOrEmpty(userId)) // { // throw new Exception("Unauthorized Access"); // } // using (var context = new StandardcanContext()) // { // var jsonData = JsonConvert.SerializeObject(new // { // TarDate = dt.ToString("dd/MM/yyyy"), // TarTime = dt.ToString("dd/MM/yyyy HH:mm:ss"), // TarType = 2, // EmpId = userId, // MLat = dataCheckin.lat, // MLong = dataCheckin.lng, // Remark = dataCheckin.remark, // Img = dataCheckin.img // }); // SystemLog systemLog = new SystemLog() // { // module = "api/TimeInOut/CheckinOutdoor", // data_log = jsonData // }; // await _systemLogService.InsertSystemLogAsync(systemLog); // TimeAttRealtime timeAttRealtime = new TimeAttRealtime(); // timeAttRealtime.TarDate = dt; // timeAttRealtime.TarTime = dt; // timeAttRealtime.TarType = 2; // timeAttRealtime.EmpId = Convert.ToInt32(userId); // timeAttRealtime.MLat = dataCheckin.lat; // timeAttRealtime.MLong = dataCheckin.lng; // timeAttRealtime.Remark = dataCheckin.remark; // context.TimeAttRealtime.Add(timeAttRealtime); // await context.SaveChangesAsync(); // if (timeAttRealtime.TarId != 0) // { // if (dataCheckin.img != null) // { // foreach (var item in dataCheckin.img) // { // var intIdt = context.TimeAttImage.DefaultIfEmpty().Max(r => r == null ? 1 : r.TariId); // TimeAttImage timeImg = new TimeAttImage(); // timeImg.TarId = timeAttRealtime.TarId; // string[] img = item.base64.Split(','); // var imgBase64 = img.Count() > 1 ? img[1] : img[0]; // byte[] imgbyte = Convert.FromBase64String(imgBase64); // var uniqueFileName = "TimeAtt_" + timeAttRealtime.TarId + "_" + intIdt + ".JPG"; // string filePath = Path.Combine(_environment.ContentRootPath + "\\images\\TimeAttReal\\", uniqueFileName); // var uploads = Path.Combine(_environment.ContentRootPath + "\\images\\TimeAttReal"); // if (!Directory.Exists(uploads)) // { // Directory.CreateDirectory(uploads); // } // using (FileStream fs = new FileStream(filePath, FileMode.Create)) // { // using (BinaryWriter bw = new BinaryWriter(fs)) // { // bw.Write(imgbyte); // fs.Flush(true); // } // } // timeImg.TariImage = uniqueFileName; // timeImg.TariUpdateDate = dt; // context.TimeAttImage.Add(timeImg); // await context.SaveChangesAsync(); // } // } // } // data.message.status = "1"; // data.message.msg = "Success"; // } // } // catch (Exception ex) // { // data.message.status = "2"; // data.message.msg = ex.Message; // } // return data; //} public async Task <ReturnMsgViewModel> CheckinOutdoorAsync(CheckinOutdoorViewModel dataCheckin) { ReturnMsgViewModel data = new ReturnMsgViewModel(); data.message = new messageModel(); try { var dt = DateTime.Now; var userId = JwtHelper.GetUserIdFromToken(HttpContext); if (String.IsNullOrEmpty(userId)) { throw new Exception("Unauthorized Access"); } string stime = dt.ToString("dd/MM/yyyy HH:mm:ss"); using (var context = new StandardcanContext()) { var jsonData = JsonConvert.SerializeObject(new { TarDate = dt.ToString("dd/MM/yyyy"), TarTime = dt.ToString("dd/MM/yyyy HH:mm:ss"), TarType = 2, EmpId = userId, MLat = dataCheckin.lat, MLong = dataCheckin.lng, Remark = dataCheckin.remark, Img = dataCheckin.img }); SystemLog systemLog = new SystemLog() { module = "api/TimeInOut/CheckinOutdoor", data_log = jsonData }; await _systemLogService.InsertSystemLogAsync(systemLog); TimeAttRealtime timeAttRealtime = new TimeAttRealtime(); timeAttRealtime.TarDate = dt; timeAttRealtime.TarTime = dt; timeAttRealtime.TarType = 2; timeAttRealtime.EmpId = Convert.ToInt32(userId); timeAttRealtime.MLat = dataCheckin.lat; timeAttRealtime.MLong = dataCheckin.lng; timeAttRealtime.Remark = dataCheckin.remark; context.TimeAttRealtime.Add(timeAttRealtime); await context.SaveChangesAsync(); if (timeAttRealtime.TarId != 0) { if (dataCheckin.img != null) { foreach (var item in dataCheckin.img) { var intIdt = context.TimeAttImage.DefaultIfEmpty().Max(r => r == null ? 1 : r.TariId); TimeAttImage timeImg = new TimeAttImage(); timeImg.TarId = timeAttRealtime.TarId; string[] img = item.base64.Split(','); var imgBase64 = img.Count() > 1 ? img[1] : img[0]; byte[] imgbyte = Convert.FromBase64String(imgBase64); var uniqueFileName = "TimeAtt_" + timeAttRealtime.TarId + "_" + intIdt + ".JPG"; // string filePath = Path.Combine(_environment.ContentRootPath + "\\images\\TimeAttReal\\", uniqueFileName); //var uploads = Path.Combine(_environment.ContentRootPath + "\\images\\TimeAttReal"); string root = @"D:\SmartCard\API"; string filePath = Path.Combine(root + "\\images\\TimeAttReal\\", uniqueFileName); var uploads = Path.Combine(root + "\\images\\TimeAttReal"); if (!Directory.Exists(uploads)) { Directory.CreateDirectory(uploads); } using (FileStream fs = new FileStream(filePath, FileMode.Create)) { using (BinaryWriter bw = new BinaryWriter(fs)) { bw.Write(imgbyte); fs.Flush(true); } } timeImg.TariImage = uniqueFileName; timeImg.TariUpdateDate = dt; context.TimeAttImage.Add(timeImg); await context.SaveChangesAsync(); } } } data.message.status = "1"; data.message.msg = "ลงเวลาสำเร็จ : " + stime; } } catch (Exception ex) { data.message.status = "2"; data.message.msg = ex.Message; } return(data); }
public async Task <IActionResult> CheckinOutdoor(CheckinOutdoorViewModel dataCheckin) { var data = await _timeInOutService.CheckinOutdoorAsync(dataCheckin); return(Ok(data)); }