Create a means not to repeat my code

Asked

Viewed 133 times

0

How can I create a means of simplify the code below to avoid repeating some things?

I would like my code "Generates user" did not repeat itself throughout the IF.

How should 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;
    //**
}

3 answers

2

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

2


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

  • 1

    I generated a public void function Gerauser() and it worked. It was easy like this and I didn’t remember... thanks Flavio!!!

1

Suggestion: Do the model validations. In your code, you will only need a Try catch.

Example: Model

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

Already in the code presented:

try{...}catch(Exception ex){...}

Browser other questions tagged

You are not signed in. Login or sign up in order to post.