Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Desafio | Login e senha

Olá galera linda e maravilhosa,

Minha sugestão para implementação de Login e Senha.

Comecei atacando o problema lá na raiz:

Autenticavel.cs

    public abstract class Autenticavel : Funcionario
    {
        protected Autenticavel(string nome, string cpf, double salario) : base(nome, cpf, salario) { }

        public string Senha { protected get; set; }
        public string Usuario { protected get; set; }


        public abstract bool Autenticar(string usuario, string senha);
    }

Depois, o vs code me apontou erro de compilação nas classes herdadas, foi meu segundo ponto de ataque.

Diretor.cs

public class Diretor : Autenticavel
    {
        public Diretor(string nome, string cpf) : base(nome, cpf, 5000) { }

        override public double Bonificacao => this.Salario *= 1.5;

        public override void AumentarSalario() => this.Salario *= 1.15;

        public override bool Autenticar(string usuario, string senha) => this.Usuario == usuario && this.Senha == senha;
    }

GerenteDeContas.cs

    public class GerenteDeContas : Autenticavel
    {
        public GerenteDeContas(string nome, string cpf) : base(nome, cpf, 4000) { }

        public override void AumentarSalario() => this.Salario *= 1.05;

        public override bool Autenticar(string usuario, string senha) => this.Usuario == usuario && this.Senha == senha;

        public override double Bonificacao => this.Salario *= 1.25;

    }

Por fim implementei a solução no SistemaInterno.cs

    public class SistemaInterno
    {
        public bool Logar(Autenticavel funcionario, string usuario, string senha)
        {
            bool usuarioAutenticado = funcionario.Autenticar(usuario, senha);

            if (usuarioAutenticado)
            {
                System.Console.WriteLine("Bem vindo ao sistema!");
                return true;
            }
            else
            {
                System.Console.WriteLine("Senha incorreta!");
                return false;
            }
        }
    }
Obrigado por lerem até aqui. Bons Estudos! e uma ótima semana.
1 resposta

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software