/// <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)); }
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(); }