private void ReadUsersInternal(Device device) { if (!Connect(device)) { return; } _service.EnableDevice(MachineNumber, false); _service.ReadAllUserID(MachineNumber); string enrollNumber, name, password; int privilege; bool enabled; while (_service.SSR_GetAllUserInfo(MachineNumber, out enrollNumber, out name, out password, out privilege, out enabled)) { var user = new UserInfo { EnrollNumber = enrollNumber, Name = name, Password = password, Privilege = privilege, Enabled = enabled, FingerPrints = new List <FingerPrint>() }; if (UsersInfo.All(u => u.EnrollNumber != user.EnrollNumber)) { _service.SSR_DeleteEnrollDataExt(MachineNumber, user.EnrollNumber, 12); continue; } UsersInfo.Add(user); for (var idwFingerIndex = 0; idwFingerIndex < 10; idwFingerIndex++) { int flag, tmpLength; string tmpData; if (_service.GetUserTmpExStr(MachineNumber, enrollNumber, idwFingerIndex, out flag, out tmpData, out tmpLength)) //get the corresponding templates string and length from the memory { user.FingerPrints.Add(new FingerPrint { Finger = idwFingerIndex, Data = tmpData }); } } } _service.ReadAllUserID(MachineNumber); //read all the user information to the memory _service.ReadAllTemplate(MachineNumber); //read all the users' fingerprint templates to the memory _service.EnableDevice(MachineNumber, true); Disconnect(); }