doCommandEnroll(string[] dataStr, NetServerClient sender) { if (dataStr.Length != 4) { return; } string str = dataStr[1]; string uId = dataStr[2]; string sId = dataStr[3]; FingerPrintAgent agent = agentManger.getAgetns() .Where(x => x.deviceModel.name == str) .FirstOrDefault(); Action <uint, uint> action = (userId, subId) => { sender.write($"{C_ENROLL}\n{userId}\n{subId}"); }; object[] obj = new object[] { Convert.ToUInt32(uId), Convert.ToByte(sId), action }; agent.runCommand(AgentsManager.EnumCommands.Enroll, obj); }
doCommandIdentify(string[] dataStr, NetServerClient sender) { if (dataStr.Length != 2) { return; } string str = dataStr[1]; FingerPrintAgent agent = agentManger.getAgetns() .Where(x => x.deviceModel.name == str) .FirstOrDefault(); Action <uint, byte> action = (userId, subId) => { sender.write($"{C_IDENTIFY}\n{userId}\n{subId}"); }; object[] obj = new object[] { action }; agent.runCommand(AgentsManager.EnumCommands.Identify, obj); }
doCommandIdentifyTemplate(string[] dataStr, NetServerClient sender) { if (dataStr.Length != 3) { return; } string str = dataStr[1]; byte[] data = Convert.FromBase64String(dataStr[2]); FingerPrintAgent agent = agentManger.getAgetns() .Where(x => x.deviceModel.name == str) .FirstOrDefault(); Action <uint, byte> action = (userId, subId) => { sender.write($"{C_IDENTIFY_TEMPLATE}\n{userId}\n{subId}"); }; object[] obj = new object[] { data, action }; agent?.runCommand(AgentsManager.EnumCommands.IdentifyTemplate, obj); }
doCommandReadTemplate(string[] dataStr, NetServerClient sender) { if (dataStr.Length != 3) { return; } string str = dataStr[1]; string uId = dataStr[2]; FingerPrintAgent agent = agentManger.getAgetns() .Where(x => x.deviceModel.name == str) .FirstOrDefault(); Action <uint, byte[]> action = (userId, data) => { sender.write($"{C_READ_TEMPLATE}\n{userId}\n{data.Length}\n{Convert.ToBase64String (data)}"); }; object[] obj = new object[] { Convert.ToUInt32(uId), action }; agent?.runCommand(AgentsManager.EnumCommands.ReadTemplate, obj); }
doCommandDeviceList(string[] dataStr, NetServerClient sender) { string[] str = agentManger.getAgetns() .Select(x => x.deviceModel.name) .ToArray(); string result = string.Join(C_SEPARATOR.ToString(), str); sender.write($"{C_DEVICES_LIST}\n{result}"); }
onServerDataReceived(NetServerClient sender, byte[] data, int len) { string[] dataStr = data.toStringUTF8() .Split(C_SEPARATOR); if (dataStr.Length == 0) { return; } if (dataStr[0] == C_IDENTIFY_TEMPLATE) { doCommandIdentifyTemplate(dataStr, sender); } else if (dataStr[0] == C_ENROLL_TEMPLATE) { doCommandEnrollTemplate(dataStr, sender); } else if (dataStr[0] == C_READ_TEMPLATE) { doCommandReadTemplate(dataStr, sender); } else if (dataStr[0] == C_DEVICES_LIST) { doCommandDeviceList(dataStr, sender); } else if (dataStr[0] == C_ENROLL) { doCommandEnroll(dataStr, sender); } else if (dataStr[0] == C_IDENTIFY) { doCommandIdentify(dataStr, sender); } }
doCommandEnrollTemplate(string[] dataStr, NetServerClient sender) { if (dataStr.Length != 4) { return; } string str = dataStr[1]; string uId = dataStr[2]; byte[] data = Convert.FromBase64String(dataStr[3]); FingerPrintAgent agent = agentManger.getAgetns() .Where(x => x.deviceModel.name == str) .FirstOrDefault(); Action <uint> action = (userId) => { sender.write($"{C_ENROLL_TEMPLATE}\n{userId}"); }; UF_ENROLL_OPTION options = UF_ENROLL_OPTION.UF_ENROLL_NONE; object[] obj = new object[] { Convert.ToUInt32(uId), options, data, action }; agent?.runCommand(AgentsManager.EnumCommands.EnrollTemplate, obj); }
onServerClientDisconnected(NetServerClient sender) { //throw new NotImplementedException (); }
parse(NetServerClient client, byte[] data, int len) { /// Parse the command }