public async Task <JsonResult> LoginUser(string Code, string imageUri) { try { var path = Server.MapPath("/UPLOADS/SubscriberFiles/" + CurrentUser.CompanyID); var file = PathChecker.FindAvailableFileName(path, "File"); var users = UsersUtility.FilterByCompany(CurrentUser.CompanyID, _userService.GetAll().Result.ToList()); var user = UsersUtility.FilterByCode(StringFormatter.RemoveStringCharacter(" ", Code), users); if (user.Count > 0) { var attendance = AttendanceUtility.FilterByCompanyID(CurrentUser.CompanyID, _attendanceService.GetAll().Result.ToList()); attendance = AttendanceUtility.FilterByUserID(user.FirstOrDefault().ID, attendance, false); attendance = AttendanceUtility.FilterByDateFromTo(GetCurrentTime(), GetCurrentTime(), attendance); if (attendance.Count > 0) { var attendanceData = new Attendance(); //checks if there is already a timeins if true then timeout that attendance else time in a user var timeout = AttendanceUtility.FilterTimeIn(attendance, false); if (timeout.Count > 0) { if (ImageUpload.UriToServer(imageUri, path + "/" + file)) { attendanceData = timeout.FirstOrDefault(); attendanceData.TimeOutImage = "/UPLOADS/SubscriberFiles/" + CurrentUser.CompanyID + "/" + file; attendanceData.TimeOut = GetCurrentTime().TimeOfDay; attendanceData.UpdatedAt = GetCurrentTime(); } } else { if (ImageUpload.UriToServer(imageUri, path + "/" + file)) { //time in user attendance check if there are timeins already var timeins = AttendanceUtility.FilterTimeIn(attendance, true); attendanceData = timeins.FirstOrDefault(); attendanceData.TimeInImage = "/UPLOADS/SubscriberFiles/" + CurrentUser.CompanyID + "/" + file; attendanceData.TimeIn = GetCurrentTime().TimeOfDay; attendanceData.UpdatedAt = GetCurrentTime(); } } _attendanceService.Update(attendanceData); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { success = false, message = MessageUtility.TimeOff() })); } } return(Json(new { success = false, message = MessageUtility.UserLoginIDNONExist() })); } catch (Exception e) { return(Json(new { success = false, message = MessageUtility.ServerError(), error = e })); } }