private Familia CriarCenarioComDependentesMenoresDeIdade()
        {
            var familiaComDoisDependentesMenoresDeIdade = FamiliaFactory.Criar(
                Status);

            FamiliaFactory.CriarPessoa(
                familiaComDoisDependentesMenoresDeIdade,
                Nome.CriarNovo("Pretendente"),
                Idade.CriarNovo(new DateTime(1997, 10, 25)),
                Tipo.Pretendente,
                Renda.CriarNovo(1000));

            FamiliaFactory.CriarPessoa(
                familiaComDoisDependentesMenoresDeIdade,
                Nome.CriarNovo("Conjugue"),
                Idade.CriarNovo(new DateTime(1997, 01, 01)),
                Tipo.Conjuge,
                Renda.CriarNovo(500));

            FamiliaFactory.CriarPessoa(
                familiaComDoisDependentesMenoresDeIdade,
                Nome.CriarNovo("Dependente 1"),
                Idade.CriarNovo(new DateTime(2010, 01, 01)),
                Tipo.Dependente);

            FamiliaFactory.CriarPessoa(
                familiaComDoisDependentesMenoresDeIdade,
                Nome.CriarNovo("Dependente 2"),
                Idade.CriarNovo(new DateTime(2010, 01, 01)),
                Tipo.Dependente);

            return(familiaComDoisDependentesMenoresDeIdade);
        }
예제 #2
0
        private Familia GerarCenarioComDoisDependentesMenorDe18Anos()
        {
            var familiaComDoisDependentesMenorDe18Anos = FamiliaFactory.Criar(Status);

            FamiliaFactory.AdicionarPessoa(
                familiaComDoisDependentesMenorDe18Anos,
                new NomeCompleto("Pretendente"),
                new Idade(DateTime.Now.AddYears(-30)),
                ETipoType.Pretendente,
                new Renda(1300));

            FamiliaFactory.AdicionarPessoa(
                familiaComDoisDependentesMenorDe18Anos,
                new NomeCompleto("Conjugue"),
                new Idade(DateTime.Now.AddYears(-29)),
                ETipoType.Conjugue,
                new Renda(900));

            FamiliaFactory.AdicionarPessoa(
                familiaComDoisDependentesMenorDe18Anos,
                new NomeCompleto("Dependente 1"),
                new Idade(DateTime.Now.AddYears(-10)),
                ETipoType.Dependente,
                new Renda(0));

            FamiliaFactory.AdicionarPessoa(
                familiaComDoisDependentesMenorDe18Anos,
                new NomeCompleto("Dependente 2"),
                new Idade(DateTime.Now.AddYears(-17)),
                ETipoType.Dependente,
                new Renda(0));

            return(familiaComDoisDependentesMenorDe18Anos);
        }
        public IResultadoCommand Tratar(CriarFamiliaCommand command)
        {
            command.Validar();
            if (command.Invalid)
            {
                return(new ResultadoCommand(0, 0, false, command.Notifications));
            }

            var tratamentoVinculosFamiliares = new Dictionary <ETipoVinculoFamiliar, Action <CriarFamiliaCommand> >()
            {
                { ETipoVinculoFamiliar.Pretendente, _categoria.ObterCategoriaIdadePretendente },
                { ETipoVinculoFamiliar.Dependente, _categoria.ObterCategoriaDependente }
            };

            try
            {
                command.CategoriaRenda = _categoria.ObterCategoriaRenda(command);

                if (tratamentoVinculosFamiliares.ContainsKey(command.TipoVinculoFamiliar))
                {
                    tratamentoVinculosFamiliares[command.TipoVinculoFamiliar].Invoke(command);
                }

                var novaFamilia       = FamiliaFactory.Criar(command);
                var novoMembroFamilia = new Pessoa(command.Nome, command.TipoVinculoFamiliar, command.DataNascimento, command.Renda, novaFamilia.Id);

                novaFamilia.AdicionarMembroFamiliar(novoMembroFamilia);

                _repositorio.CriarFamilia(novaFamilia);

                return(new ResultadoCommand(0, 0, true));
            }
            catch (Exception)
            {
                return(new ResultadoCommand(0, 0, false, "Ocorreu um erro inesperado ao criar uma família."));
            }
        }