public CambiarFrecuenciaContratosRDPRE(ICambiarFrecuenciaContratosRDVIS view)
 {
     if (view == null)
     {
         throw new Exception(nombreClase + ".CambiarFrecuenciaContratosRDPRE: La vista usada no puede ser NULL");
     }
     try
     {
         this.vista = view;
         this.controladorContrato = new ContratoRDBR();
         this.controladorPagos    = new PagoUnidadContratoRDBR();
         this.dataContext         = FacadeBR.ObtenerConexion();
     }
     catch (Exception ex)
     {
         throw new Exception(nombreClase + ".CambiarFrecuenciaContratosRDPRE: Ocurrio un problema al obtener la informacion Inicial", ex.InnerException);
     }
 }
        /// <summary>
        /// Decide que controlador usar para consultar pagos
        /// </summary>
        private List <PagoUnidadContratoBO> ConsultarPagos(Int32?pagoId, Int32?referenciaContratoId, Int32?unidadId, ETipoContrato?tipoContrato, Boolean esCompleto)
        {
            var listaPagos = new List <PagoUnidadContratoBO>();
            PagoUnidadContratoBR pagoBr = null;
            PagoUnidadContratoBO pago   = new PagoUnidadContratoBOF();

            switch (tipoContrato)
            {
            case ETipoContrato.FSL:
                pagoBr = new PagoUnidadContratoFSLBR();
                pago   = new PagoUnidadContratoFSLBO()
                {
                    Tarifa = new TarifaPagoEquipoBO()
                };
                break;

            case ETipoContrato.RD:
                pagoBr = new PagoUnidadContratoRDBR();
                pago   = new PagoUnidadContratoRDBO()
                {
                    Tarifa = new TarifaPagoEquipoBO()
                };
                break;

            case ETipoContrato.CM:
            case ETipoContrato.SD:
                pagoBr = new PagoUnidadContratoBR();
                pago   = new PagoUnidadContratoManttoBO(tipoContrato.Value)
                {
                    Tarifa = new TarifaPagoEquipoBO()
                };
                break;
            }

            if (pagoId != null)
            {
                pago.PagoID = pagoId;
            }
            if (referenciaContratoId != null)
            {
                pago.ReferenciaContrato = new ReferenciaContratoBO()
                {
                    ReferenciaContratoID = referenciaContratoId
                }
            }
            ;
            if (unidadId != null)
            {
                pago.Unidad = new UnidadBO()
                {
                    UnidadID = unidadId
                }
            }
            ;

            switch (tipoContrato)
            {
            case ETipoContrato.FSL:
                listaPagos.AddRange(esCompleto ? ((PagoUnidadContratoFSLBR)pagoBr).ConsultarCompleto(this.dataContext, (PagoUnidadContratoFSLBO)pago, true) : ((PagoUnidadContratoFSLBR)pagoBr).Consultar(this.dataContext, (PagoUnidadContratoFSLBO)pago));
                break;

            case ETipoContrato.RD:
                listaPagos.AddRange(esCompleto ? ((PagoUnidadContratoRDBR)pagoBr).ConsultarCompleto(this.dataContext, (PagoUnidadContratoRDBO)pago) : ((PagoUnidadContratoRDBR)pagoBr).Consultar(this.dataContext, (PagoUnidadContratoRDBO)pago));
                break;

            case ETipoContrato.CM:
            case ETipoContrato.SD:
                listaPagos.AddRange(esCompleto ? pagoBr.ConsultarCompleto(this.dataContext, pago) : pagoBr.Consultar(this.dataContext, pago));
                break;
            }

            return(listaPagos);
        }