public DataTable ObtenerVersionesPorNegocioController(int idTipoVehiculo, int idMarca, string idTipo, int idModelo, string idNegocio)
        {
            CotizadorEnLineaPresenter        presenter      = null;
            CaracteristicasVehiculoPresenter caracPresenter = null;
            DataTable dtVersiones          = null;
            DataTable configuracionNegocio = null;
            DataRow   drConfiguracion      = null;
            string    cadenaVersiones      = string.Empty;

            try
            {
                //Inicializa la información y objetos usados.
                presenter = new CotizadorEnLineaPresenter();

                configuracionNegocio = presenter.ObtenerConfiguracionNegocio(idNegocio, "");
                drConfiguracion      = configuracionNegocio.Rows[0];

                if (drConfiguracion != null && drConfiguracion["Tar_TarifaId"] != null && drConfiguracion["Tar_TarifaId"].ToString().Trim() != string.Empty &&
                    Convert.ToInt32(drConfiguracion["Tar_TarifaId"]) > 0 &&
                    drConfiguracion["Tar_Version"] != null && drConfiguracion["Tar_Version"].ToString().Trim() != string.Empty &&
                    Convert.ToInt32(drConfiguracion["Tar_Version"]) >= 0 &&
                    drConfiguracion["cli_nip"].ToString().Trim() != string.Empty

                    )
                {
                    DataTable tarifa = presenter.ObtenerTarifa(drConfiguracion["cli_nip"].ToString().Trim(), Convert.ToInt32(drConfiguracion["Tar_TarifaId"]), Convert.ToInt32(drConfiguracion["Tar_Version"]), null);

                    if (tarifa.Rows.Count > 0)
                    {
                        //Se obtiene la cadena de versiones
                        cadenaVersiones = CotizacionLinea.ObtenerVersionesParaTarificacion(tarifa.Rows[0]);

                        caracPresenter = new CaracteristicasVehiculoPresenter();

                        //Se obtienen las versiones de los vehículos, ya tomando en cuenta la primer tarífa.
                        dtVersiones = caracPresenter.RecuperarVersiones(idTipoVehiculo, idMarca, idTipo, idModelo, DateTime.Now, cadenaVersiones, "");
                    }
                }

                return(dtVersiones);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                presenter      = null;
                caracPresenter = null;
                dtVersiones    = null;
            }
        }
        public Versiones ObtenerVersiones(int idTipoVehiculo, int idMarca, string idTipo, int idModelo, string usuario)
        {
            CaracteristicasVehiculoPresenter presenter = null;
            string    cadenaVersiones = string.Empty;
            DataTable dtVersiones     = null;
            Versiones response        = null;
            DataRow   tarifa          = null;

            try
            {
                //Obtiene la tarifa para el usuario firmado.
                tarifa = this.ObtenerPrimerTarifa(usuario);

                if (tarifa != null && tarifa[COLUMNA.TAR.ID] != null && tarifa[COLUMNA.TAR.ID].ToString().Trim() != string.Empty &&
                    Convert.ToInt32(tarifa[COLUMNA.TAR.ID]) > 0)
                {
                    //Se obtiene la cadena de versiones
                    cadenaVersiones = CotizacionLinea.ObtenerVersionesParaTarificacion(tarifa);

                    presenter = new CaracteristicasVehiculoPresenter();

                    //Se obtienen las versiones de los vehículos, ya tomando en cuenta la primer tarífa.
                    dtVersiones = presenter.RecuperarVersiones(idTipoVehiculo, idMarca, idTipo, idModelo, DateTime.Now, cadenaVersiones, usuario);

                    //Convierte la tabla obtenida en el objeto que será devuelto.
                    response = this.ConvierteDataTableAVersiones(dtVersiones);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                dtVersiones = null;
                presenter   = null;
                tarifa      = null;
            }

            return(response);
        }