Exemple #1
0
        public async Task <CalculatorResponse> Handle(CalculatorQuery request, CancellationToken cancellationToken)
        {
            var rate = await _retry.ExecuteAsync <decimal?>(_rateService.GetRateMonthlyAsync);

            if (!rate.HasValue)
            {
                return(Error("Rate Service Unabailable"));
            }

            var interest   = new Interest(request.InitialVale, request.Months, rate.Value);
            var validation = interest.IsValidForCalculateInterest();

            if (validation.IsSuccess)
            {
                return(await Task.FromResult(interest.Map()));
            }

            return(Error(validation.Message));
        }