public async Task <ActionResult> Form(Hijo usuario, bool readOnly = false, bool delete = false)
        {
            if (delete)
            {
                var resultado = servicio.EliminarAlumno(usuario.Id, usuario, usuarioLogueado);
                if (resultado.EsValido)
                {
                    return(RedirectToAction("Index"));
                }

                TempData["Error"] = resultado;
            }

            if (ModelState.IsValid)
            {
                Resultado resultado = new Resultado();

                usuario.Sala.Nombre = servicio.ObtenerSalasPorInstitucion(usuarioLogueado).Single(x => x.Id == usuario.Sala.Id).Nombre;

                if (usuario.Id == 0)
                {
                    resultado = servicio.AltaAlumno(usuario, usuarioLogueado);
                }
                else
                {
                    resultado = servicio.EditarAlumno(usuario.Id, usuario, usuarioLogueado);
                }

                if (resultado.EsValido)
                {
                    return(RedirectToAction("Index"));
                }

                TempData["Error"] = resultado;
            }

            ViewBag.ReadOnly = readOnly;
            ViewBag.Delete   = delete;
            ViewBag.Salas    = new SelectList(servicio.ObtenerSalasPorInstitucion(usuarioLogueado), "Id", "Nombre", usuario?.Sala?.Id);

            return(View(usuario));
        }