Ejemplo n.º 1
0
 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));
 }
Ejemplo n.º 2
0
 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
 );
Ejemplo n.º 3
0
        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)
            });
        }
Ejemplo n.º 4
0
 public async Task <ActionResult <OutPrecoCalculadoPlano> > CalculaValorMinutosPlano(InCalculoPlano inCalculoPlano) =>
 Ok(await calculaPlano.CalcularPlano(inCalculoPlano));