示例#1
0
        public DistribuicaoResponse ObterBonus(DistribuicaoRequest data)
        {
            var    funcionarios  = _funcionarioRepository.ObterFuncionarios().ToList();
            var    participacoes = new List <ParticipacoesResponse>();
            double bonusTotal    = 0;

            foreach (var funcionario in funcionarios)
            {
                bonusTotal += CalcularBonusIndividual(funcionario);
                participacoes.Add(new ParticipacoesResponse
                {
                    matricula             = funcionario.matricula,
                    nome                  = funcionario.nome,
                    valor_da_participacao = CalcularBonusIndividual(funcionario)
                });
            }

            double saldo = data.valor_maximo_distribuicao - bonusTotal;

            return(new DistribuicaoResponse()
            {
                Participacoes = participacoes,
                total_de_funcionarios = funcionarios.Count,
                total_distribuido = Math.Round(bonusTotal, 2),
                total_disponibilizado = Math.Round(data.valor_maximo_distribuicao, 2),
                saldo_total_disponibilizado = Math.Round(saldo, 2)
            });
        }
示例#2
0
        public void Success()
        {
            List <ParticipacoesResponse> participacoesTest = new List <ParticipacoesResponse>();

            participacoesTest.Add(new ParticipacoesResponse {
                matricula = "0009968", nome = "Victor Wilson", valor_da_participacao = valorParticipacaoValid
            });
            DistribuicaoResponse responseTest = new DistribuicaoResponse()
            {
                Participacoes = participacoesTest,
                saldo_total_disponibilizado = saldoTotalValid,
                total_de_funcionarios       = 1,
                total_disponibilizado       = totalDisponibilizadoValid,
                total_distribuido           = totalDistribuidoValid
            };

            var funcionarios = new List <Funcionario>();

            funcionarios.Add(funcionario);

            mockFuncionarioRepository.Setup(m => m.ObterFuncionarios()).Returns(funcionarios);
            var request = new DistribuicaoRequest()
            {
                valor_maximo_distribuicao = 121889.5
            };
            DistribuicaoResponse distribuicaoLucros = distribuicaoService.ObterBonus(request);

            distribuicaoLucros.Should().BeEquivalentTo(responseTest);
        }
示例#3
0
 public async Task <ActionResult> Post([FromBody] DistribuicaoRequest data)
 {
     try
     {
         var response = _distribuicaoService.ObterBonus(data);
         return(Created("", response));
     }
     catch (Exception ex)
     {
         return(StatusCode(StatusCodes.Status500InternalServerError, ex));
     }
 }
示例#4
0
        public void Errors(
            string testName,
            double valorParticipacao,
            double saldoTotal,
            int qtdFuncionarios,
            double totalDistribuido,
            double totalDisponibilizado
            )
        {
            List <ParticipacoesResponse> participacoesTest = new List <ParticipacoesResponse>();

            participacoesTest.Add(new ParticipacoesResponse {
                matricula = "0009968", nome = "Victor Wilson", valor_da_participacao = valorParticipacao
            });
            DistribuicaoResponse responseTest = new DistribuicaoResponse()
            {
                Participacoes = participacoesTest,
                saldo_total_disponibilizado = saldoTotal,
                total_de_funcionarios       = qtdFuncionarios,
                total_disponibilizado       = totalDisponibilizado,
                total_distribuido           = totalDistribuido
            };

            var funcionarios = new List <Funcionario>();

            funcionarios.Add(funcionario);

            mockFuncionarioRepository.Setup(m => m.ObterFuncionarios()).Returns(funcionarios);
            var request = new DistribuicaoRequest()
            {
                valor_maximo_distribuicao = totalDistribuido
            };
            DistribuicaoResponse distribuicaoLucros = distribuicaoService.ObterBonus(request);

            distribuicaoLucros.Should().NotBeEquivalentTo(responseTest);
        }