Beispiel #1
0
        protected override Result <ParametroOutput> ExecuteCompute(ParametroInput parametroInput)
        {
            var input = (ValorConversaoParametroInput)parametroInput;

            var valorConversao = input.QuantidadeDesejada * input.TaxaConversao;

            return(Result <ParametroOutput> .Ok(new ValorConversaoParametroOutput(Math.Round(valorConversao, 2))));
        }
Beispiel #2
0
        protected override Result <ParametroOutput> ExecuteCompute(ParametroInput parametroInput)
        {
            var input = (ValorSegmentoParametroInput)parametroInput;

            var valorSegmento = input.TaxaSegmento == 0 ? MULTIPLICADOR : MULTIPLICADOR * input.TaxaSegmento;

            return(Result <ParametroOutput> .Ok(new ValorConversaoParametroOutput(Math.Round(valorSegmento, 2))));
        }
Beispiel #3
0
        protected override Result <ParametroInput> ValidarFormula()
        {
            var resultadoValidarFormula = base.ValidarFormula();

            if (resultadoValidarFormula.IsFailure)
            {
                return(Result <ParametroInput> .Fail(resultadoValidarFormula.Messages));
            }

            if (ParametroInput.GetType() != typeof(ConversaoMoedaParametroInput))
            {
                return(Result <ParametroInput> .Fail($"{nameof(ParametroInput)} não é do tipo {nameof(ConversaoMoedaParametroInput)}"));
            }

            return(Result <ParametroInput> .Ok(ParametroInput));
        }
Beispiel #4
0
        protected override Result <ParametroOutput> ExecuteCompute(ParametroInput parametroInput)
        {
            var input = (ConversaoMoedaParametroInput)parametroInput;

            var valorConversao = CadernoFormulasService.Compute(new ValorConversaoFormula(new ValorConversaoParametroInput(input.QuantidadeDesejada, input.TaxaConversao)));

            if (valorConversao.IsFailure)
            {
                return(Result <ParametroOutput> .Fail(valorConversao.Messages));
            }

            var valorSegmento = CadernoFormulasService.Compute(new ValorSegmentoFormula(new ValorSegmentoParametroInput(input.TaxaSegmento)));

            if (valorSegmento.IsFailure)
            {
                return(Result <ParametroOutput> .Fail(valorConversao.Messages));
            }

            var resultado = valorConversao.Value.Valor * valorSegmento.Value.Valor;

            return(Result <ParametroOutput> .Ok(new ConversaoMoedaParametroOutput(Math.Round(resultado, 2))));
        }
Beispiel #5
0
 public ConversaoMoedaFormula(ParametroInput parametroInput)
     : base(parametroInput)
 {
 }
Beispiel #6
0
 public ValorConversaoFormula(ParametroInput parametroInput)
     : base(parametroInput)
 {
 }
Beispiel #7
0
 public ComputeFormula(ParametroInput parametroInput)
 {
     ParametroInput = parametroInput;
 }
Beispiel #8
0
 protected abstract Result <ParametroOutput> ExecuteCompute(ParametroInput parametroInput);
Beispiel #9
0
 public ValorSegmentoFormula(ParametroInput parametroInput)
     : base(parametroInput)
 {
 }