Exemplo n.º 1
0
        public async Task DeveGarantirQueJurosSejaCalculado()
        {
            var calculo = _interestApplication.Calculate(100, 24)
                          .GetAwaiter().GetResult();

            Assert.False(calculo.IsNone);
        }
        public async Task <ActionResult <ApiResponse> > Calculate([FromQuery] double initialValue, double months)
        {
            var apiResponse = new ApiResponse();

            try
            {
                var calculo = await _interestApplication.Calculate(initialValue, months);

                // Instâncias de Option<T> encapsulam um valor que pode ou não existir. Este valor só pode ser acessado através do método Match.
                // Ver mais ref. este pacote em: https://gabriel-schade-cardoso.gitbook.io/tango-br/tipos/introduction-1
                if (calculo.IsSome)
                {
                    double amount = calculo
                                    .Match((a) => amount = a, () => 0);
                    return(Ok(apiResponse.AddSuccess(amount)));
                }

                return(BadRequest(apiResponse.AddFailure("Erro ao calcular os juros. Por favor, tente novamente.")));
            }
            catch (Exception e)
            {
                return(BadRequest(apiResponse.AddFailure(e.Message, e)));
            }
        }