public static List<Tipo_Servicio> getTiposServicioRutas(int rutaId)
        {
            GD2C2015DataSet dataSet = new GD2C2015DataSet();
            Tipos_ServicioTableAdapter tipos_ServicioTA = new Tipos_ServicioTableAdapter();
            tipos_ServicioTA.Fill(dataSet.Tipos_Servicio);
            Tipos_Servicio_RutasTableAdapter tipos_Servicio_RutasTA = new Tipos_Servicio_RutasTableAdapter();
            tipos_Servicio_RutasTA.Fill(dataSet.Tipos_Servicio_Rutas);

            List<Tipo_Servicio> tipos_Servicio = new List<Tipo_Servicio>();

            GD2C2015DataSet.Tipos_Servicio_RutasRow[] tiposServ = (GD2C2015DataSet.Tipos_Servicio_RutasRow[])dataSet.Tipos_Servicio_Rutas.Select("rut_id='" + rutaId + "'");
            foreach (GD2C2015DataSet.Tipos_Servicio_RutasRow tipServ in tiposServ)
            {
                GD2C2015DataSet.Tipos_ServicioRow tipo_Servicio = (GD2C2015DataSet.Tipos_ServicioRow)dataSet.Tipos_Servicio.Select("tip_id='" + tipServ.tipo_servicio_id + "'").First();
                Tipo_Servicio ts = new Tipo_Servicio();
                ts.Id = tipo_Servicio.tip_id;
                ts.Descripcion = tipo_Servicio.tip_descripcion;
                tipos_Servicio.Add(ts);
            }
            return tipos_Servicio;
        }
        public static List<Funcionalidad> getFuncionalidadesRol(int rolId)
        {
            GD2C2015DataSet dataSet = new GD2C2015DataSet();
            FuncionesTableAdapter funcionesTA = new FuncionesTableAdapter();
            funcionesTA.Fill(dataSet.Funciones);
            Funciones_RolesTableAdapter funcionesRolesTA = new Funciones_RolesTableAdapter();
            funcionesRolesTA.Fill(dataSet.Funciones_Roles);

            List<Funcionalidad> funcionalidades = new List<Funcionalidad>();

            GD2C2015DataSet.Funciones_RolesRow[] funcs = (GD2C2015DataSet.Funciones_RolesRow[])dataSet.Funciones_Roles.Select("rol_id='" + rolId + "'");
            foreach (GD2C2015DataSet.Funciones_RolesRow func in funcs)
            {
                GD2C2015DataSet.FuncionesRow funcion = (GD2C2015DataSet.FuncionesRow)dataSet.Funciones.Select("fun_id='" + func.funcion_id + "'").First();
                Funcionalidad f = new Funcionalidad();
                f.Id = funcion.fun_id;
                f.Descripcion = funcion.fun_descripcion;
                funcionalidades.Add(f);
            }
            return funcionalidades;
        }
 private int getRutaId(GD2C2015DataSet.CiudadesDataTable origen, GD2C2015DataSet.CiudadesDataTable destino)
 {
     int rutaId = 0;
     int ciudad_origen_id = origen.First().ciu_id;
     int ciudad_destino_id = destino.First().ciu_id;
     GD2C2015DataSet.RutasDataTable ruta = this.rutasTableAdapter.GetDataByOrigenDestino(ciudad_origen_id, ciudad_destino_id);
     if (ruta.Count() > 0)
     {
         rutaId = ruta.First().rut_id;
     }
     return rutaId;
 }
        private bool valido(int aeronaveId, GD2C2015DataSet.CiudadesDataTable origen, GD2C2015DataSet.CiudadesDataTable destino)
        {
            string error = null;

            if (this.matricula.Text == "")
            {
                error = "La matricula no puede ser nula\n";
            }

            if (this.origen.Text == "")
            {
                error = error + "Debe seleccionar una ciudad origen\n";
            }
            else if (origen.Count == 0)
            {
                error = error + "No existe la ciudad de origen\n";
            }

            if (this.destino.Text == "")
            {
                error = error + "Debe seleccionar una ciudad destino\n";
            }
            else if (destino.Count == 0)
            {
                error = error + "No existe la ciudad de destino\n";
            }
            if ((this.fechaSalida.Value.Date.CompareTo(DateTime.Now.Date) < 0) || (this.fechaSalida.Value.Date.CompareTo(DateTime.Now.Date) == 0 && this.fechaSalida.Value.TimeOfDay.CompareTo(DateTime.Now.TimeOfDay) < 0))
            {
                error = error + "La fecha de salida debe ser posterior a ahora\n";
            }
            double aux = this.fechaLlegadaEstimada.Value.Subtract(this.fechaSalida.Value).TotalSeconds;
            if (aux > 86400 || aux <= 0)
            {
                error = error + "La fecha de llegada estimada no puede superar las 24hs de la fecha de salida o ser anterior\n";
            }
            if (error != null)
            {
                MessageBox.Show(error);
                return false;
            }
            else
            {
                int rutaId = this.getRutaId(origen, destino);

                if (this.serviciosNoConcuerdan(aeronaveId, rutaId))
                {
                    error = error + "El servicio del aeronave no concuerda con el servicio de la ruta\n";
                }
                if (this.aeronaveNoDisponible(aeronaveId))
                {
                    error = error + "El aeronave seleccionada no se encuentra disponible para la fecha ingresada\n";
                }
                if (error != null)
                {
                    MessageBox.Show(error);
                    return false;
                }
            }
            return true;
        }
        private bool valido(GD2C2015DataSet.AeronavesRow[] aeronave, GD2C2015DataSet.CiudadesDataTable origen, GD2C2015DataSet.CiudadesDataTable destino)
        {
            string error = null;

            if (this.matricula.Text == "")
            {
                error = "La matricula no puede ser nula\n";
            }
            else if (aeronave.Length == 0)
            {
                error = error + "No existe el aeronave con esa matrícula\n";
            }

            if (this.origen.Text == "")
            {
                error = error + "Debe seleccionar una ciudad origen\n";
            }
            else if (origen.Count == 0)
            {
                error = error + "No existe la ciudad de origen\n";
            }

            if (this.destino.Text == "")
            {
                error = error + "Debe seleccionar una ciudad destino\n";
            }
            else if (destino.Count == 0)
            {
                error = error + "No existe la ciudad de destino\n";
            }

            if (error != null)
            {
                MessageBox.Show(error);
                return false;
            }
            else
            {
                return true;
            }
        }
        internal static List<Tipo_Servicio> getTipos_Servicio()
        {
            GD2C2015DataSet dataSet = new GD2C2015DataSet();
            Tipos_ServicioTableAdapter tipos_ServicioTableAdapter = new Tipos_ServicioTableAdapter();
            List<Tipo_Servicio> tipos_Servicios = new List<Tipo_Servicio>();

            tipos_ServicioTableAdapter.Fill(dataSet.Tipos_Servicio);
            GD2C2015DataSet.Tipos_ServicioRow[] tipos_Servicio = (GD2C2015DataSet.Tipos_ServicioRow[])dataSet.Tipos_Servicio.Select();
            foreach (GD2C2015DataSet.Tipos_ServicioRow tipServ in tipos_Servicio)
            {
                Tipo_Servicio ts = new Tipo_Servicio();
                ts.Id = tipServ.tip_id;
                ts.Descripcion = tipServ.tip_descripcion;
                tipos_Servicios.Add(ts);
            }
            return tipos_Servicios;
        }
        internal static List<Funcionalidad> getFunciones()
        {
            GD2C2015DataSet dataSet = new GD2C2015DataSet();
            FuncionesTableAdapter funcionesTableAdapter = new FuncionesTableAdapter();
            List<Funcionalidad> funcionalidades = new List<Funcionalidad>();

            funcionesTableAdapter.Fill(dataSet.Funciones);
            GD2C2015DataSet.FuncionesRow[] funciones = (GD2C2015DataSet.FuncionesRow[])dataSet.Funciones.Select();
            foreach (GD2C2015DataSet.FuncionesRow func in funciones)
            {
                Funcionalidad f = new Funcionalidad();
                f.Id = func.fun_id;
                f.Descripcion = func.fun_descripcion;
                funcionalidades.Add(f);
            }
            return funcionalidades;
        }
 public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) {
     GD2C2015DataSet ds = new GD2C2015DataSet();
     global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType();
     global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence();
     global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny();
     any.Namespace = ds.Namespace;
     sequence.Items.Add(any);
     type.Particle = sequence;
     global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable();
     if (xs.Contains(dsSchema.TargetNamespace)) {
         global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream();
         global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream();
         try {
             global::System.Xml.Schema.XmlSchema schema = null;
             dsSchema.Write(s1);
             for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) {
                 schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current));
                 s2.SetLength(0);
                 schema.Write(s2);
                 if ((s1.Length == s2.Length)) {
                     s1.Position = 0;
                     s2.Position = 0;
                     for (; ((s1.Position != s1.Length) 
                                 && (s1.ReadByte() == s2.ReadByte())); ) {
                         ;
                     }
                     if ((s1.Position == s1.Length)) {
                         return type;
                     }
                 }
             }
         }
         finally {
             if ((s1 != null)) {
                 s1.Close();
             }
             if ((s2 != null)) {
                 s2.Close();
             }
         }
     }
     xs.Add(dsSchema);
     return type;
 }
        private bool valido(GD2C2015DataSet.CiudadesDataTable origen, GD2C2015DataSet.CiudadesDataTable destino)
        {
            string error = null;
            this.ciudadesTableAdapter.Fill(this.dataSet.Ciudades);
            if ( this.fechaViaje.Value.Subtract(DateTime.Today).TotalHours <= 0)
            {
                error = "La fecha debe ser posterior a ahora\n";
            }
            if (this.origenViaje.Text == "")
            {
                error = error + "Debe seleccionar una ciudad origen\n";
            }
            else if (origen.Count == 0)
            {
                error = error + "No existe la ciudad de origen\n";
            }

            if (this.destinoViaje.Text == "")
            {
                error = error + "Debe seleccionar una ciudad destino\n";
            }
            else if (destino.Count == 0)
            {
                error = error + "No existe la ciudad de destino\n";
            }
            if (error != null)
            {
                MessageBox.Show(error);
                return false;
            }
            return true;
        }