private float CalcularGanancias(Llamada.TipoDeLlamada tipo) { float recaudacion = 0; switch (tipo) { case Llamada.TipoDeLlamada.Todas: foreach (Llamada l in this._listaDeLlamadas) { if (l is Local) { recaudacion += ((Local)l).CostoLlamada; } else { recaudacion += ((Provincial)l).CostoLlamada; } } break; case Llamada.TipoDeLlamada.Local: foreach (Llamada l in this._listaDeLlamadas) { if (l is Local) { recaudacion += ((Local)l).CostoLlamada; } } break; case Llamada.TipoDeLlamada.Provincial: foreach (Llamada l in this._listaDeLlamadas) { if (l is Provincial) { recaudacion += ((Provincial)l).CostoLlamada; } } break; } return(recaudacion); }
/// <summary> /// CalcularGanancia será privado. Este método recibe un Enumerado TipoLlamada y retornará /// el valor de lo recaudado, según el criterio elegido (ganancias por las llamadas del tipo Local, /// Provincial o de Todas según corresponda). /// </summary> /// <param name="tipo"></param> /// <returns></returns> private float CalcularGanancia(Llamada.TipoDeLlamada tipo) { float ganacia = 0; foreach (Llamada llamada in listaDeLlamadas) { if (llamada is Local && (tipo == Llamada.TipoDeLlamada.Local || tipo == Llamada.TipoDeLlamada.Todas)) { Local local = (Local)llamada; ganacia += local.CostoLlamada; } else if (llamada is Provincial && (tipo == Llamada.TipoDeLlamada.Provincial || tipo == Llamada.TipoDeLlamada.Todas)) { Provincial provincial = (Provincial)llamada; ganacia += provincial.CostoLlamada; } } return(ganacia); }