public ActionResult Create(CrucigramaCreateViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                viewModel.Crucigrama.Descripcion = viewModel.Crucigrama.Enunciado;

                db.Entry(viewModel.Crucigrama).State = EntityState.Modified;
                db.SaveChanges();

                viewModel.Crucigrama = db.Crucigramas.Include(c => c.CasillaCrucigramas).FirstOrDefault(c => c.BloqueId == viewModel.Crucigrama.BloqueId);
                for (int i = 0; i < 12; i++)
                {
                    for (int j = 0; j < 12; j++)
                    {
                        var casilla = viewModel.Crucigrama.CasillaCrucigramas.FirstOrDefault(cr => cr.PosH == j && cr.PosV == i);
                        casilla.letra           = viewModel.Letras[i][j];
                        db.Entry(casilla).State = EntityState.Modified;
                        db.SaveChanges();
                    }
                }
                return(RedirectToAction("Index", "Bloques", new { id = viewModel.Crucigrama.SubTemaId, pestanya = (int)PestanyasBloques.Contenidos }));
            }
            viewModel.Inicializar(viewModel.Crucigrama.SubTemaId);
            return(View(viewModel));
        }
        // GET: Admin/Crucigramas/Create
        public ActionResult Create(int id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Bloque bloque = db.Bloques.SingleOrDefault(bl => bl.BloqueId == id);

            if (bloque == null)
            {
                return(HttpNotFound());
            }
            CrucigramaCreateViewModel viewModel = new CrucigramaCreateViewModel();

            viewModel.Inicializar(id);
            viewModel.Crucigrama = db.Crucigramas.Include(c => c.CasillaCrucigramas).FirstOrDefault(c => c.BloqueId == id);

            if (!viewModel.Crucigrama.CasillaCrucigramas.Any())
            {
                viewModel.Crucigrama = CrearCeldas(viewModel.Crucigrama);
            }

            viewModel.Letras = new string[12][];
            for (int i = 0; i < 12; i++)
            {
                viewModel.Letras[i] = new string[12];
                for (int j = 0; j < 12; j++)
                {
                    var casilla = viewModel.Crucigrama.CasillaCrucigramas.FirstOrDefault(cr => cr.PosH == j && cr.PosV == i);
                    if (casilla != null)
                    {
                        viewModel.Letras[i][j] = casilla.letra;
                    }
                }
            }
            return(View(viewModel));
        }