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