Example #1
0
        public void NaoDeveCriarPontuacaoPorFamiliaPoisRendaPorPessoasSaoInvalidas()
        {
            //Given
            var pessoas = new List <Pessoa>
            {
                new Pessoa(
                    _faker.Random.Guid(),
                    _faker.Person.FullName,
                    _faker.Date.Past().Date,
                    _faker.PickRandom <TipoDaPessoaEnum>()
                    )
            };
            List <RendaPorPessoa> rendaPorPessoasInvalidas = null;
            var familia = new Familia(
                _faker.Random.Guid(),
                pessoas,
                rendaPorPessoasInvalidas,
                0
                );

            //When
            var pontuacaoPorFamilia = new PontuacaoPorFamilia(familia);

            //Then
            Assert.True(pontuacaoPorFamilia.Invalid);
            Assert.True(pontuacaoPorFamilia.PossuiNotificacoes);
        }
Example #2
0
        public void NaoDeveCriarPontuacaoPorFamiliaPoisPessoasSaoInvalidas()
        {
            //Given
            List <Pessoa> pessoasInvalidas = null;
            var           rendaPorPessoas  = new List <RendaPorPessoa>
            {
                new RendaPorPessoa(
                    _faker.Random.Guid(),
                    _faker.Random.Guid(),
                    _faker.Random.Decimal(40)
                    )
            };
            var familia = new Familia(
                _faker.Random.Guid(),
                pessoasInvalidas,
                rendaPorPessoas,
                0
                );

            //When
            var pontuacaoPorFamilia = new PontuacaoPorFamilia(familia);

            //Then
            Assert.True(pontuacaoPorFamilia.Invalid);
            Assert.True(pontuacaoPorFamilia.PossuiNotificacoes);
        }
Example #3
0
        public void DeveCriarPontuacaoPorFamilia()
        {
            //Given
            var pessoas = new List <Pessoa>
            {
                new Pessoa(
                    _faker.Random.Guid(),
                    _faker.Person.FullName,
                    _faker.Date.Past().Date,
                    _faker.PickRandom <TipoDaPessoaEnum>()
                    )
            };
            var rendaPorPessoas = new List <RendaPorPessoa>
            {
                new RendaPorPessoa(
                    _faker.Random.Guid(),
                    pessoas.FirstOrDefault().Id,
                    _faker.Random.Decimal(40)
                    )
            };
            var familia = new Familia(
                _faker.Random.Guid(),
                pessoas,
                rendaPorPessoas,
                0
                );

            //When
            var pontuacaoPorFamilia = new PontuacaoPorFamilia(familia);

            //Then
            Assert.True(pontuacaoPorFamilia.Valid);
            Assert.True(pontuacaoPorFamilia.NaoPossuiNotificacoes);
        }
        public async Task <FamiliaDto> Armazenar(FamiliaDto dto)
        {
            if (!ValidarDto(dto))
            {
                return(null);
            }

            if (!ValidarPessoas(dto.Pessoas))
            {
                return(null);
            }

            if (!ValidarRendaPorPessoas(dto.RendaPorPessoas))
            {
                return(null);
            }

            var familia = new Familia(
                dto.Id,
                InstanciaPessoas(dto.Pessoas),
                InstanciaRendaPorPessoas(dto.RendaPorPessoas),
                dto.Status
                );

            var pontuacaoPorFamilia = new PontuacaoPorFamilia(familia);

            if (pontuacaoPorFamilia.Invalid)
            {
                Notificador.Notificar(pontuacaoPorFamilia.Notificacoes);
                return(null);
            }

            await _pontuacaoPorFamiliaRepositorio.Incluir(pontuacaoPorFamilia);

            await _pontuacaoPorFamiliaRepositorio.Salvar();

            return(MontarDtoDeRetorno(pontuacaoPorFamilia));
        }
 private FamiliaDto MontarDtoDeRetorno(PontuacaoPorFamilia pontuacaoPorFamilia)
 {
     return(new FamiliaDto
     {
         Id = pontuacaoPorFamilia.Familia.Id,
         Pessoas = pontuacaoPorFamilia.Familia.Pessoas.Select(pessoa => new PessoaDto
         {
             Id = pessoa.Id,
             Nome = pessoa.Nome,
             DataDeNascimento = pessoa.DataDeNascimento,
             TipoDaPessoa = (int)pessoa.TipoDaPessoa
         })
                   .ToList(),
         RendaPorPessoas = pontuacaoPorFamilia.Familia.Rendas.Select(rendaPorPessoa => new RendaPorPessoaDto
         {
             Id = rendaPorPessoa.Id,
             PessoaId = rendaPorPessoa.PessoaId,
             Valor = rendaPorPessoa.Valor
         })
                           .ToList(),
         Status = (int)pontuacaoPorFamilia.Familia.Status
     });
 }
        public async Task <PontuacaoPorFamilia> Incluir(PontuacaoPorFamilia pontuacaoPorFamilia)
        {
            await _contexto.Set <PontuacaoPorFamilia>().AddAsync(pontuacaoPorFamilia);

            return(pontuacaoPorFamilia);
        }