private void ValidaEntrada(InCalculoPlano inCalculoPlano) { AddNotifications(new FluentValidator.Validation.ValidationContract().Requires() .HasLen(inCalculoPlano.Origem, 3, "Origem", Messages.TAMANHO_DDD_ORIGEM) .HasLen(inCalculoPlano.Destino, 3, "Destino", Messages.TAMANHO_DDD_DESTINO) .IsGreaterOrEqualsThan(inCalculoPlano.MinutosDesejados, 0, "Minutos Desejados", Messages.MINUTOS_MAIOR_QUE_ZERO)); }
public async Task <ConsultaPrecoCalculoPlano> ObterParaCalculoDePlano(InCalculoPlano inCalculoPlano) => await sqlDataContext.Connection.QueryFirstOrDefaultAsync <ConsultaPrecoCalculoPlano> ( ProceduresNames.CONSULTAR_TABELACAO_PRECOS_CALCULO_PLANO, new { Origem = inCalculoPlano.Origem, Destino = inCalculoPlano.Destino }, commandType : System.Data.CommandType.StoredProcedure );
public async Task <OutPrecoCalculadoPlano> CalcularPlano(InCalculoPlano inCalculoPlano) { ValidaEntrada(inCalculoPlano); if (this.Invalid) { return new OutPrecoCalculadoPlano { Message = this.Notifications } } ; if (inCalculoPlano.Origem.Equals(inCalculoPlano.Destino)) { return new OutPrecoCalculadoPlano { Message = Messages.DDD_ORIGEM_DESTINO_IGUAIS } } ; var consultaCustoPlano = await tabelacaoPrecos.ObterParaCalculoDePlano(inCalculoPlano); if (consultaCustoPlano is null) { return new OutPrecoCalculadoPlano { Message = Messages.NAO_FORAM_ENCONTRADOS_PLANOS } } ; return(new OutPrecoCalculadoPlano { Message = "Sucesso", PrecoCalculadoPlano = inCalculoPlano.MinutosDesejados > inCalculoPlano.MinutosPlano ? PrecoCalculadoPlano(inCalculoPlano.MinutosPlano, inCalculoPlano.MinutosDesejados, consultaCustoPlano.CustoMin) : 0.0M, PrecoCalculadoSemPlano = PrecoCalculadoSemPlano(inCalculoPlano.MinutosDesejados, consultaCustoPlano.CustoMin) }); }
public async Task <ActionResult <OutPrecoCalculadoPlano> > CalculaValorMinutosPlano(InCalculoPlano inCalculoPlano) => Ok(await calculaPlano.CalcularPlano(inCalculoPlano));