1
resposta

Desafio: login e senha

using bytebank_ADM.Funcionarios;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace bytebank_ADM.SistemaInterno
{
    public abstract class Autenticavel : Funcionario
    {
        public string Senha { get; set; }
        public string Login { get; set; }  

        public abstract bool Autenticar(string senha, string login);


        public Autenticavel(string cpf, double Salario) : base(cpf, Salario)
        {
        }

    }
}
using bytebank_ADM.SistemaInterno;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace bytebank_ADM.Funcionarios
{
    public class GerenteDeContas : Autenticavel
    {
        public GerenteDeContas(string cpf) : base(cpf, 4000)
        {

        }

        public override double GetBonificacao()
        {
            return Salario * 0.25;
        }

        public override void AumentarSalario()
        {
            Salario *= 1.05;
        }

        public override bool Autenticar(string senha, string login)
        {
            return this.Senha == senha && this.Login == Login;

        }
    }
}

using bytebank_ADM.SistemaInterno;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace bytebank_ADM.Funcionarios
{
    public class Diretor: Autenticavel
    {

        public override double GetBonificacao()
        {
            return this.Salario * 0.50;
        }

        //public override double GetPremiacaoSemestral()
        //{
        //    return base.GetPremiacaoSemestral();
        //}

        public Diretor(string cpf): base(cpf, 5000) 
        {
            //Console.WriteLine("Criando um Diretor.");
        }

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

        public override bool Autenticar(string senha, string login)
        {
            return this.Senha == senha && this.Login == login;
        }
    }
}

using bytebank_ADM.Funcionarios;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace bytebank_ADM.SistemaInterno
{
    public class SistemaInterno
    {
        public bool Logar(Autenticavel funcionario, string senha, string login)
        {
            bool usuarioAutenticado = funcionario.Autenticar(senha, login);
            if(usuarioAutenticado)
            {
                Console.WriteLine("Boas vindas ao nosso sistema");
                return true;

            }
            else
            {
                Console.WriteLine("Senha incorreta!");
                return false;
            }
        }



    }
}

//calcularBonificacao();
usarSistema();

void calcularBonificacao()
{
    GerenciadorDeBonificacao gerenciador = new GerenciadorDeBonificacao();
    Designer ulisses = new Designer("32165498701");
    ulisses.Nome = "Ulisses Souza";

    Diretor paula = new("21345678901");
    paula.Nome = "Paula Souza";

    Auxiliar igor = new("12345678901");
    igor.Nome = "Igor Dias";

    GerenteDeContas camila = new("43215678901");
    camila.Nome = "Camila Oliveira";

    gerenciador.Registrar(camila);
    gerenciador.Registrar(paula);
    gerenciador.Registrar(ulisses);
    gerenciador.Registrar(igor);

    Console.WriteLine("Total de Bonificacao = " + gerenciador.TotalDeBonificacao);


}


void usarSistema()
{
    SistemaInterno sistema = new SistemaInterno();

    Diretor ingrid = new("22321654987");
    ingrid.Nome = "Igrid Novaes";
    ingrid.Login = "Administrador";
    ingrid.Senha = "123";

    GerenteDeContas ursula = new("11321654987");
    ursula.Nome = "Ursula Alcantara";
    ursula.Login = "11321654987";
    ursula.Senha = "456";

    sistema.Logar(ingrid, "123", "Admin");
    sistema.Logar(ursula, "456", "11321654987");

}
1 resposta

Vagner, tudo bom camarada!

Primeiramente parabéns pela realização da atividade, colocar a mão no código é sempre bom! hehehe.

Continue firme nos estudos.

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