Example #1
0
        /// <summary>
        /// Calcula o valor de uma ligação no plano, com base na tarifa de um DDD de origem para um DDD de destino
        /// </summary>
        /// <param name="tarifa">Objeto da tarifa do DDD de origem e DDD de destino</param>
        /// <param name="minutos">Minutos da ligação</param>
        /// <returns>Valor a ser pago pela ligação</returns>
        public decimal CalculaTarifa(Tarifa tarifa, int minutos)
        {
            var minutosExcedentes = minutos - this.Minutos;
            if (minutosExcedentes <= 0) return 0;

            return minutosExcedentes * (tarifa.ValorPorMinuto * (this.AcrescimoMinutosExcedentes / 100m + 1));
        }
Example #2
0
        public TarifaFacade(List<FaleMaisPlano> planos, List<DDD> origens, List<DDD> destinos, Tarifa tarifa, FaleMaisPlano plano, int minutos)
        {
            this.Planos = planos;
            this.Origens = origens;
            this.Destinos = destinos;

            if (tarifa == null)
                tarifa = new Tarifa { OrigemNumero = origens.First().Numero, DestinoNumero = destinos.First().Numero };
            this.Tarifa = tarifa;

            if (plano == null)
                plano = new FaleMaisPlano { Id = planos.First().Id };
            this.Plano = plano;

            if (minutos == 0)
                minutos = 1;
            this.Minutos = minutos;
        }
 public void InsereOuAtualiza(Tarifa tarifa)
 {
     this.DBContext.Tarifas.AddOrUpdate(tarifa);
     this.DBContext.SaveChanges();
 }