private RangoTarifaFSLBO ObtenerRangoTarifaInterfaz()
        {
            RangoTarifaFSLBO rango = new RangoTarifaFSLBO();

            if (CargoKm.Value)
            {
                rango.KmRangoInicial = !String.IsNullOrEmpty(txtRangoInicial.Text) ? (Int32?)Int32.Parse(txtRangoInicial.Text) : null;
                rango.KmRangoFinal   = !String.IsNullOrEmpty(txtRangoFinal.Text) ? (Int32?)Int32.Parse(txtRangoFinal.Text) : null;
                rango.CargoKm        = !String.IsNullOrEmpty(txtCargo.Text) ? (Decimal?)Decimal.Parse(txtCargo.Text) : null;
            }
            else
            {
                rango.HrRangoInicial = !String.IsNullOrEmpty(txtRangoInicial.Text) ? (Int32?)Int32.Parse(txtRangoInicial.Text) : null;
                rango.HrRangoFinal   = !String.IsNullOrEmpty(txtRangoFinal.Text) ? (Int32?)Int32.Parse(txtRangoFinal.Text) : null;
                rango.CargoHr        = !String.IsNullOrEmpty(txtCargo.Text) ? (Decimal?)Decimal.Parse(txtCargo.Text) : null;
            }

            return(rango);
        }
        private String ValidarRango(TarifaFSLBO tarifa, List <RangoTarifaFSLBO> rangosTarifa, RangoTarifaFSLBO nuevoRango)
        {
            if (rangosTarifa == null)
            {
                rangosTarifa = new List <RangoTarifaFSLBO>();
            }
            if (String.IsNullOrEmpty(txtRangoInicial.Text))
            {
                return("Es requerido capturar el rango de Inicio");
            }
            if (String.IsNullOrEmpty(txtRangoFinal.Text) && this.ddlRangoTiempo.SelectedIndex == 2)
            {
                return("Es requerido capturar el rango Final");
            }
            if (String.IsNullOrEmpty(txtCargo.Text))
            {
                return("Es requerido ingresar el valor del Cargo. Sino se cobrará cargo, llenar el campo con 0");
            }

            if (!rangosTarifa.Any())
            {
                if (tarifa.CobraKm.Value)
                {
                    if (tarifa.KmLibres > nuevoRango.KmRangoInicial)
                    {
                        return("El Rango Inicial debe ser Mayor a la los Kilometros Libres");
                    }
                    if (tarifa.KmLibres == nuevoRango.KmRangoInicial)
                    {
                        return("El Rango Inicial debe ser Mayor a la los Kilometros Libres");
                    }
                    if ((nuevoRango.KmRangoInicial - tarifa.KmLibres) > 1)
                    {
                        return("El Rango inicial debe ser los Kilometros Libres MAS Uno");
                    }
                    if (nuevoRango.KmRangoFinal == null && this.ddlRangoTiempo.SelectedIndex == 0)
                    {
                        return("Debe Existir un Rango Final");
                    }
                    if (nuevoRango.KmRangoFinal != null && nuevoRango.KmRangoInicial >= nuevoRango.KmRangoFinal)
                    {
                        return("El Rango final debe ser Mayor al Rango Inicial");
                    }
                }
                else
                {
                    if (tarifa.HrLibres > nuevoRango.HrRangoInicial)
                    {
                        return("El Rango Inicial debe ser Mayor a la los Kilometros Libres");
                    }
                    if (tarifa.HrLibres == nuevoRango.HrRangoInicial)
                    {
                        return("El Rango Inicial debe ser Mayor a la los Kilometros Libres");
                    }
                    if ((nuevoRango.HrRangoInicial - tarifa.HrLibres) > 1)
                    {
                        return("El Rango inicial debe ser las Horas Libres MAS Una");
                    }
                    if (nuevoRango.HrRangoFinal == null && this.ddlRangoTiempo.SelectedIndex == 0)
                    {
                        return("Debe Existir un Rango Final");
                    }
                    if (nuevoRango.HrRangoFinal != null && nuevoRango.HrRangoInicial >= nuevoRango.HrRangoFinal)
                    {
                        return("El Rango final debe ser Mayor al Rango Inicial");
                    }
                }
            }
            else
            {
                var rangos      = rangosTarifa.OrderBy(x => x.KmRangoInicial).ToList();
                var ultimoRango = rangos.Last();
                if (tarifa.CobraKm.Value)
                {
                    if (ultimoRango.KmRangoFinal == null)
                    {
                        return("El Rango Anterior al que se quiere agregar no tiene un valor de 'Rango Final'");
                    }
                    if (ultimoRango.KmRangoFinal >= nuevoRango.KmRangoInicial)
                    {
                        return("El Rango Inicial debe ser Mayor al Ultimo Rango Final");
                    }
                    if ((nuevoRango.KmRangoInicial - ultimoRango.KmRangoFinal) > 1)
                    {
                        return("El Rango inicial debe ser el Ultimo Rango Final mas uno");
                    }
                    if (nuevoRango.KmRangoFinal == null && this.ddlRangoTiempo.SelectedIndex == 0)
                    {
                        return("Debe Existir un Rango Final");
                    }
                    if (nuevoRango.KmRangoFinal != null && nuevoRango.KmRangoInicial >= nuevoRango.KmRangoFinal)
                    {
                        return("El Rango final debe ser Mayor al Rango Inicial");
                    }
                }
                else
                {
                    if (ultimoRango.HrRangoFinal == null)
                    {
                        return("El Rango Anterior al que se quiere agregar no tiene un valor de 'Rango Final'");
                    }
                    if (ultimoRango.HrRangoFinal >= nuevoRango.HrRangoInicial)
                    {
                        return("El Rango Inicial debe ser Mayor al Ultimo Rango Final");
                    }
                    if ((nuevoRango.HrRangoInicial - ultimoRango.HrRangoFinal) > 1)
                    {
                        return("El Rango inicial debe ser el Ultimo Rango Final mas uno");
                    }
                    if (nuevoRango.HrRangoFinal == null && this.ddlRangoTiempo.SelectedIndex == 0)
                    {
                        return("Debe Existir un Rango Final");
                    }
                    if (nuevoRango.HrRangoFinal != null && nuevoRango.HrRangoInicial >= nuevoRango.HrRangoFinal)
                    {
                        return("El Rango final debe ser Mayor al Rango Inicial");
                    }
                }
            }
            return("");
        }