Example #1
0
        //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));
        }