コード例 #1
0
 private void Read()
 {
     while (port.IsOpen)
     {
         try
         {
             string rfid = port.ReadLine();
             rfid = rfid.Replace("\r", "");
             if (!string.IsNullOrEmpty(rfid) && rfid.All(char.IsDigit))
             {
                 EmployeeProfileRfid employeeProfileRfid = _attendanceManager.AssignAttendanceInfo(rfid);
                 employeeNameLabel.Text        = employeeProfileRfid.EmployeeName;
                 employeeIdLabel.Text          = employeeProfileRfid.EmployeeId;
                 attendanceLabelStatus.Text    = employeeProfileRfid.AttendanceStatus;
                 timeAndDateLabel.Text         = employeeProfileRfid.TimeAndDate;
                 profileImageBox.ImageLocation = employeeProfileRfid.ProfileImage;
                 statusLabel.Text = employeeProfileRfid.Status;
             }
             //MessageBox.Show(rfid);
             Task.Delay(10000);
         }
         catch (TimeoutException)
         {
         }
     }
 }
コード例 #2
0
        private EmployeeProfileRfid AddEntranceStatus(string rfid)
        {
            double             entryTime          = Convert.ToDouble(TimeSpan.Parse(AttendanceDefinition.GetDefinition().EntryTime).TotalSeconds) + 1800;
            double             nowTime            = Convert.ToDouble(TimeSpan.Parse(DateTime.Now.ToString("HH:mm:ss")).TotalSeconds);
            EmployeeAttendance employeeAttendance = new EmployeeAttendance()
            {
                UserId    = GetUserIdByRfid(rfid),
                EntryTime = DateTime.Now.ToString("HH:mm:ss"),
                Years     = DateTime.Now.Year.ToString(),
                Months    = DateTime.Now.ToString("MMMM"),
                Day       = DateTime.Now.ToString("dddd"),
                LocalDate = DateTime.Now.ToString("yyyy-MM-dd"),
                Status    = nowTime <= entryTime ? 1 : 0,
                Fine      = nowTime <= entryTime ? 0 : 50
            };

            int countRow = _attendanceGateway.AddEntranceStatus(employeeAttendance);

            if (countRow > 0)
            {
                EmployeeProfileRfid employeeProfileRfid = _attendanceGateway.GetEmployeeInfo(rfid);
                employeeProfileRfid.AttendanceStatus = nowTime <= entryTime ? "Present" : "Late";
                employeeProfileRfid.TimeAndDate      = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                return(employeeProfileRfid);
            }
            return(new EmployeeProfileRfid {
                Status = "Something Wrong!"
            });
        }
コード例 #3
0
 public EmployeeProfileRfid GetEmployeeInfo(string rfid)
 {
     try
     {
         const string query = @"SELECT p.name, p.img_name, p.user_id FROM rfid_info r 
                               JOIN employee_profile_info p 
                               ON r.user_id = p.user_id AND r.rfid_id= @rfid";
         Connection.Open();
         Command.CommandText = query;
         Command.Parameters.Clear();
         Command.Parameters.AddWithValue("@rfid", rfid);
         Reader = Command.ExecuteReader();
         Reader.Read();
         EmployeeProfileRfid employeeProfileRfid = new EmployeeProfileRfid
         {
             ProfileImage = "http://localhost/eps/" + Reader["img_name"],
             EmployeeName = Reader["name"].ToString(),
             EmployeeId   = Reader["user_id"].ToString(),
         };
         Reader.Close();
         return(employeeProfileRfid);
     }
     finally
     {
         Connection.Close();
     }
 }
コード例 #4
0
        private EmployeeProfileRfid AddLeavingStatus(string rfid)
        {
            EmployeeAttendance employeeAttendance = new EmployeeAttendance()
            {
                UserId      = GetUserIdByRfid(rfid),
                LeavingTime = DateTime.Now.ToString("HH:mm:ss"),
                LocalDate   = DateTime.Now.ToString("yyyy-MM-dd")
            };

            int countRow = _attendanceGateway.AddLeavingStatus(employeeAttendance);

            if (countRow > 0)
            {
                EmployeeProfileRfid employeeProfileRfid = _attendanceGateway.GetEmployeeInfo(rfid);
                employeeProfileRfid.AttendanceStatus = "Leaving";
                employeeProfileRfid.TimeAndDate      = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
                return(employeeProfileRfid);
            }
            return(new EmployeeProfileRfid {
                Status = "Something Wrong!"
            });
        }