Create a way to not repeat my code [closed]

0

How can I create a way to simplify the code below so that some things do not happen again?

I'd like my " Generate User " code not to repeat over IF .

How do I proceed?

if (txtNome.Text == ""){
    MessageBox.Show("Digite o nome do usuário.", "Name", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    txtNome.Focus();
}else if (txtEmail.Text == ""){
    MessageBox.Show("Digite o seu endereço de e-mail.", "Mail", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    txtEmail.Focus();
}else if (txtSenha.Text == ""){
    MessageBox.Show("Digite a sua senha.", "Password", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    txtSenha.Focus();
}else if (RdAdministrador.Checked == true){
    string resposta="xxxxx";
    string res = Interaction.InputBox("Você é realmente um administrador?\nDigite a resposta para a pergunta secreta.", "Pergunta Secreta");
    if (res == resposta){
        MessageBox.Show("Acesso concedido!");
        //Gera usuário ********************************************************************************************
        int i = txtNome.Text.LastIndexOf(" "); //Carrega na variavel o valor do ultimo espaço para pegar sobrenome.

        string nome = txtNome.Text.Substring(0, 1); //Carrega primeira letra do nome digitado.

        string sobrenome = txtNome.Text.Substring(i + 1); //Carrega ultimo sobrenome completo.

        Random GeraRandom = new Random(); //Gera numero randomico para adicionar ao usuário.
        int numero = GeraRandom.Next(1, 99);

        txtUsuario.Text = sobrenome + nome + numero;
        //**********************************************************************************************************
    }else{
        MessageBox.Show("Acesso negado, Adeus!", "Good-bye", MessageBoxButtons.OK,MessageBoxIcon.Stop);
    }
}else{
    //Gera usuário ********************************************************************************************
    int i = txtNome.Text.LastIndexOf(" "); //Carrega na variavel o valor do ultimo espaço para pegar sobrenome.

    string nome = txtNome.Text.Substring(0, 1); //Carrega primeira letra do nome digitado.

    string sobrenome = txtNome.Text.Substring(i + 1); //Carrega ultimo sobrenome completo.

    Random GeraRandom = new Random(); //Gera numero randomico para adicionar ao usuário.
    int numero = GeraRandom.Next(1, 99);

    txtUsuario.Text = sobrenome + nome + numero;
    //**
}
    
asked by anonymous 14.09.2017 / 20:19

3 answers

2

You could create a gerar_usuario() function and within this function put the code to create users and then just call the function where you need it.

    
14.09.2017 / 20:42
2

Create classes. Do programming-oriented-to-objects, creating classes with methods, functions, variables, etc ... You can create a class "user_generator" and put a gerar_usuário(string nome, string email, string senha) function inside it, so it will be more organized.

    
14.09.2017 / 20:36
1

Suggestion: Validate the model. In your code, you only need a try catch.

Example: Template

if(String.IsNullOrEmpty(this.Name)){throw new Exception("O nome é obrigatório")}

Already in the code shown:

try{...}catch(Exception ex){...}
    
15.09.2017 / 18:54