// Controlador public static void Controller(Client client, P_20D rcv) { if (!Regex.IsMatch(rcv.UserName, @"^[A-Za-z0-9]{4,12}$")) { client.Close("Somente letras e números no login. 4 a 12 caracteres."); } else if (!Regex.IsMatch(rcv.Password, @"^[A-Za-z0-9]{4,10}$")) { client.Close("Somente letras e números na senha. 4 a 10 caracteres."); } else { // Pequeno LOG da conta Log.Information($"UserName: {rcv.UserName}, {rcv.UserName.Length}"); Log.Information($"Password: {rcv.Password}, {rcv.Password.Length}"); // Define os dados da conta na Account do cliente client.Account.SetLogin(rcv.UserName, rcv.Password, $"{Config.Random.Next ( 1000 , 9999 )}", new Character [4]); // Prepara o pacote de login P_10A p010A = P_10A.New(client); p010A.UserName = rcv.UserName; // Envia os pacotes pro login client.Send(p010A); client.Send(P_101.New($"Entre com sua senha numérica! [{client.Account.Numeric}]")); // Atualiza o status do cliente client.Status = ClientStatus.Numeric; } }
// Controlador public static void Controller(Client client, P_20D rcv) { if (!Regex.IsMatch(rcv.UserName, @"^[A-Za-z0-9]{4,12}$")) { client.Close("Somente letras e números no login. 4 a 12 caracteres."); } else if (!Regex.IsMatch(rcv.Password, @"^[A-Za-z0-9]{4,10}$")) { client.Close("Somente letras e números na senha. 4 a 10 caracteres."); } else { Account account = UserAccountDAO.loadAccount(rcv.UserName, rcv.Password); //TODO: remover apos finalizar o emulador if (account == null) { UserAccountDAO.CreateOrUpdateAccount(new Account(rcv.UserName, rcv.Password)); account = UserAccountDAO.loadAccount(rcv.UserName, rcv.Password); } if (account != null) { client.Account = account; // Prepara o pacote de login P_10A p010A = P_10A.New(client); p010A.UserName = rcv.UserName; // Envia os pacotes pro login client.Send(p010A); client.Send(P_101.New($"Entre com sua senha numérica!")); // Atualiza o status do cliente client.Status = ClientStatus.Numeric; } else { client.Send(P_101.New($"Usuario ou Senha invalida!")); } } }