public async Task <int> Editar_Institucion(UsuarioInstitucion institucion) //metodo para actualizar una asignatura
        {
            //busca el usuario segun el id de la institucion
            var user = _context.UsuariosInstituciones.Where(x => x.IdInstitucion == institucion.Id).FirstOrDefault(); //verifica si existe una institucion

            //busca el usuario la institucion
            var institucio = _context.Institucion.Where(x => x.Id == institucion.Id).FirstOrDefault();

            //si solo cambia el nombre de usuario
            if (institucion.Contraseña == null) // si existen nombre de institucion y nombre de usuario, verifica que sea el mismo a actualizar
            {
                //Verifica que no exista el nombre de usuario
                var nombre = _context.UsuariosInstituciones.Where(x => x.Usuario == institucion.Usuario).FirstOrDefault();

                if (nombre == null || user.Id == nombre.Id)// si no existe el nombre, actualiza
                {
                    user.Usuario = institucion.Usuario;
                    _context.Update(user);
                    await _context.SaveChangesAsync(); //guarda

                    institucio.Direccion = institucion.Direcccion;
                    institucio.Nombre    = institucion.Institucion;
                    _context.Update(institucio);
                    await _context.SaveChangesAsync(); //guarda

                    return(1);
                }
                else // de lo contrario retorna 0
                {
                    return(0);
                }
            }
            else // si hay cambios en la contraseña
            {
                user.Usuario    = institucion.Usuario;
                user.Contraseña = institucion.Contraseña;
                _context.Update(user);
                await _context.SaveChangesAsync(); //guarda

                institucio.Direccion = institucion.Direcccion;
                institucio.Nombre    = institucion.Institucion;
                _context.Update(institucio);
                await _context.SaveChangesAsync(); //guarda

                return(1);
            }
        }
        //metodo para actualizar un usuario Institucion
        public async Task <IActionResult> Editar_Institucion([Bind("Id,Institucion,Direcccion,Usuario,Contraseña")] UsuarioInstitucion usuar) //metodo para actualizar una asignatura
        {
            var inst = _context.Institucion.Where(x => x.Nombre == usuar.Institucion).FirstOrDefault();                                       //verifica si existe una institucion
            var user = _context.UsuariosInstituciones.Where(x => x.Usuario == usuar.Usuario).FirstOrDefault();                                //verifica si existe una institucion

            if (inst != null && user != null)                                                                                                 // si existen nombre de institucion y nombre de usuario, verifica que sea el mismo a actualizar
            {
                if (inst.Id == usuar.Id && user.IdInstitucion == usuar.Id)                                                                    // si es el mismo a actualizar
                {
                    user.Usuario    = usuar.Usuario;                                                                                          //agrega
                    user.Contraseña = usuar.Contraseña;                                                                                       //agrega
                    _context.Update(user);
                    await _context.SaveChangesAsync();                                                                                        //guarda

                    inst.Nombre    = usuar.Institucion;                                                                                       //agrega
                    inst.Direccion = usuar.Direcccion;                                                                                        //agrega
                    _context.Update(inst);
                    await _context.SaveChangesAsync();                                                                                        //guarda

                    return(Json(1));
                }
                else // de lo contrario retorna -1
                {
                    return(Json(-1));
                }
            }
            else // si no existen nombre de institucion y nombre de usuario Actualiza
            {
                var inst2 = _context.Institucion.Where(x => x.Id == usuar.Id).FirstOrDefault(); //busca
                var user2 = _context.UsuariosInstituciones.Where(x => x.IdInstitucion == usuar.Id).FirstOrDefault(); //busca

                user2.Usuario    = usuar.Usuario;                                                                    //agrega
                user2.Contraseña = usuar.Contraseña;                                                                 //agrega
                _context.Update(user2);
                await _context.SaveChangesAsync();                                                                   //guarda

                inst2.Nombre    = usuar.Institucion;                                                                 //agrega
                inst2.Direccion = usuar.Direcccion;                                                                  //agrega
                _context.Update(inst2);
                await _context.SaveChangesAsync();                                                                   //guarda

                return(Json(1));
            }
        }
        [HttpPost] //metodo para Agregar una institucion
        public async Task <ActionResult> Registro([Bind("Institucion,Direcccion,Usuario,Contraseña")] UsuarioInstitucion usuar)
        {
            var inst = _context.Institucion.Where(x => x.Nombre == usuar.Institucion).FirstOrDefault();        //verifica si existe una institucion
            var user = _context.UsuariosInstituciones.Where(x => x.Usuario == usuar.Usuario).FirstOrDefault(); //verifica si existe una institucion

            if (inst == null && user == null)
            {     //agrega asignaturas
                Institucion institucion = new Institucion();
                institucion.Nombre    = usuar.Institucion;
                institucion.Direccion = usuar.Direcccion;
                _context.Add(institucion);
                await _context.SaveChangesAsync();

                Usuariosinstituciones usarios_Institucion = new Usuariosinstituciones();
                usarios_Institucion.Usuario       = usuar.Usuario;
                usarios_Institucion.Contraseña    = usuar.Contraseña;
                usarios_Institucion.IdInstitucion = institucion.Id;
                _context.Add(usarios_Institucion);
                await _context.SaveChangesAsync();

                return(Json(institucion.Id));
            }
            return(Json(-1));
        }