public PagamentoParcialController(ILogger <PagamentoParcialController> logger,
                                   IPagamentoParcialRepository pagamentoParcialRepository,
                                   IClienteRepository clienteRepository)
 {
     _logger = logger;
     _pagamentoParcialRepository = pagamentoParcialRepository;
     _clienteRepository          = clienteRepository;
 }
        public static async Task <PagamentoParcialResponse> CadastrarNovoPagamentoParcial(IPagamentoParcialRepository pagamentoParcialRepository,
                                                                                          IClienteRepository clienteRepository,
                                                                                          PagamentoParcial pagamentoParcial)
        {
            CalcularValorRestanteDaFatura(pagamentoParcial);

            CalcularValorDaParcela(pagamentoParcial);

            await pagamentoParcialRepository.CadastrarNovoPagamentoParcial(pagamentoParcial);

            return(new PagamentoParcialResponse
            {
                ValorRestante = pagamentoParcial.ValorRestante,
                ValorDaParcela = pagamentoParcial.ValorDaParcela,
                QuantidadeParcelas = pagamentoParcial.QuantidadeParcelas,
                Mensagem = $"Pagamento parcial em {pagamentoParcial.QuantidadeParcelas} parcelas no valor de " +
                           string.Format(new CultureInfo("pt-BR"), "{0:C}", pagamentoParcial.ValorDaParcela) +
                           $" para o cliente {(await clienteRepository.Get(pagamentoParcial.ClienteId)).Nome} cadastrado com sucesso," +
                           $" com a forma de pagamento { BuscaFormaPagamento(pagamentoParcial) }"
            });
        }