예제 #1
0
        public Candidatura(VagaEmprego vaga, Candidato candidato, NumeroPositivo pretensaoSalarial, Texto observacao)
        {
            Vaga              = vaga;
            Candidato         = candidato;
            DataCandidatura   = DateTime.Now;
            PretensaoSalarial = pretensaoSalarial;
            Observacao        = observacao;

            new ValidationContract <Candidatura>(this)
            .IsNotNull(Vaga, "A vaga de emprego da candudatura não pode ser nula")
            .IsNotNull(Candidato, "O candidato à vaga de emprego não pode ser nulo");

            if (Vaga != null)
            {
                AddNotifications(Vaga.Notifications);
            }

            if (Candidato != null)
            {
                AddNotifications(Candidato.Notifications);
            }

            if (PretensaoSalarial != null && PretensaoSalarial.Valor != 0)
            {
                AddNotifications(PretensaoSalarial.Notifications);
            }
        }
예제 #2
0
        public void Inicializar()
        {
            var empresa          = new Empresa(new Nome("Empresa LTDA"), new Texto("Empresa"), new Nome("Belo Horizonte"), "", new Site("www.empresa.io"));
            var areaProfissional = new AreaProfissional(new Nome("Informática"));

            vagaEmprego       = new VagaEmprego(empresa, new Nome("Programador"), new Texto("Programar em .NET com C#"), new Texto("Vale Refeição"), areaProfissional, new Descricao("De 08 às 17:40 todos os dias de semana"), new DateTime(2118, 01, 20), false, new NumeroPositivo(4000), new TipoContratacao(new Nome("CLT")));
            candidato         = new Candidato(new Email("*****@*****.**"), new Nome("José Silva"), new Telefone("3134231829"), new CPF("16654614038"), "!1234", "!1234");
            pretensaoSalarial = new NumeroPositivo(8000);
            observacoes       = new Texto("Disponibilidade imediata");
        }
예제 #3
0
 public void Inicializar()
 {
     empresa          = new Empresa(new Nome("KURINGAS BAR"), new Texto("Bar localizado no centro cidade com serviço de delivery"), new Nome("Ressaquinha"), null, null);
     cargo            = new Nome("Gerente Administrativo");
     descricaoVaga    = new Texto("Vaga de gerente administrativo. Deve ter conhecimento em rotinas financeiras.");
     beneficios       = new Texto("Vale refeição, vale transporte e PL");
     areaProfissional = new AreaProfissional(new Nome("Administrativo/Financeiro"));
     horarioTrabalho  = new Descricao("De segunda à sexta, das 8:00 às 17:50 hs com uma hora de almoço");
     dataExpiracao    = DateTime.Today.AddDays(30);
     salario          = new NumeroPositivo(989.77);
     tipoContratacao  = new TipoContratacao(new Nome("CLT"));
 }
예제 #4
0
        public void DadoUmNumeroPositivoOConstrutorDevRetornarObjetoValido()
        {
            NumeroPositivo numeroPositivo = new NumeroPositivo(0.6854);

            Assert.IsTrue(numeroPositivo.IsValid());
        }
예제 #5
0
        public void DadoONumeroZeroOConstrutorDeveRetornarObjetoInvalido()
        {
            NumeroPositivo numeroPositivo = new NumeroPositivo(0);

            Assert.IsFalse(numeroPositivo.IsValid());
        }
예제 #6
0
        public void DadoUmNumeroNegativoOConstrutorDeveRetornarObjetoInvalido()
        {
            NumeroPositivo numeroPositivo = new NumeroPositivo(-0.534);

            Assert.IsFalse(numeroPositivo.IsValid());
        }
예제 #7
0
        public VagaEmprego(Empresa empresa, Nome cargo, Texto descricao, Texto beneficios, AreaProfissional areaProfissional, Descricao horarioTrabalho, DateTime dataExpiracao, bool salarioAcombinar, NumeroPositivo salario, TipoContratacao tipoContratacao) : this()
        {
            DataCriacao      = DateTime.Now;
            Empresa          = empresa;
            Cargo            = cargo;
            Descricao        = descricao;
            Beneficios       = beneficios;
            AreaProfissional = areaProfissional;
            HorarioTrabalho  = horarioTrabalho;
            DataExpiracao    = dataExpiracao;
            SalarioAcombinar = salarioAcombinar;
            Status           = StatusVaga.Aberta;

            if (!SalarioAcombinar)
            {
                Salario = salario;
            }


            TipoContratacao = tipoContratacao;

            new ValidationContract <VagaEmprego>(this)
            .IsNotNull(Empresa, "A empresa dona da vaga de emprego não pode ser nula.")
            .IsNotNull(Cargo, "O cargo relacionado a vaga de emprego não pode ser nulo.")
            .IsNotNull(Descricao, "A Descrição da vaga não pode ser nula.")
            .IsNotNull(AreaProfissional, "A área profissional da vaga não pode ser nula.")
            .IsNotNull(TipoContratacao, "O tipo de contratação da vaga não pode ser nulo")
            .IsGreaterThan(x => x.DataExpiracao, DataCriacao, "A data de expiração não pode ser menor que a data de criação da vaga");

            if (Empresa != null)
            {
                AddNotifications(Empresa.Notifications);
            }

            if (Cargo != null)
            {
                AddNotifications(Cargo.Notifications);
            }

            if (Descricao != null)
            {
                AddNotifications(Descricao.Notifications);
            }

            if (Beneficios != null)
            {
                AddNotifications(Beneficios.Notifications);
            }

            if (AreaProfissional != null)
            {
                AddNotifications(AreaProfissional.Notifications);
            }

            if (HorarioTrabalho != null)
            {
                AddNotifications(HorarioTrabalho.Notifications);
            }

            if (!SalarioAcombinar && Salario != null)
            {
                AddNotifications(Salario.Notifications);
            }

            if (TipoContratacao != null)
            {
                AddNotifications(TipoContratacao.Notifications);
            }

            if (!SalarioAcombinar && Salario == null)
            {
                AddNotification("Salario", "O salário deve ser informado quando a opção de salário a combinar não for selecionada.");
            }
        }
예제 #8
0
 protected VagaEmprego() : base()
 {
     Salario = new NumeroPositivo(0);
 }