// GET: Admin/Bloques/Create public ActionResult Create(int id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } var subtema = db.SubTemas.Include(s => s.Tema).SingleOrDefault(s => s.SubTemaId == id); if (subtema == null) { return(HttpNotFound()); } BloquesCreateViewModel viewModel = new BloquesCreateViewModel(); viewModel.Subtema = subtema; viewModel.InicializarDesplegables(); viewModel.CargarClienteSeleccionado(db); return(View(viewModel)); }
public ActionResult Create(BloquesCreateViewModel viewModel) { if (ModelState.IsValid) { bool isValid = true; if (viewModel.Bloque.AreaId == (int)AreasId.Examen) { if (viewModel.Bloque.TipoEjercicioId != (int)TiposDeEjerciciosId.Test && viewModel.Bloque.TipoEjercicioId != (int)TiposDeEjerciciosId.FillTheGap) { ModelState.AddModelError("Bloque.TipoEjercicioId", "El examen sólo puede ser Test o Fill the gap"); isValid = false; } var examen = db.Bloques.FirstOrDefault(bl => bl.AreaId == (int)AreasId.Examen && bl.SubTemaId == viewModel.Subtema.SubTemaId); if (examen != null) { ModelState.AddModelError("Bloque.AreaId", "Ya existe un examen"); isValid = false; } } if (isValid) { viewModel.Bloque.SubTemaId = viewModel.Subtema.SubTemaId; db.Bloques.Add(viewModel.Bloque); db.SaveChanges(); AccesoClientesHelper.AnyadirBloqueConHijos(viewModel.Bloque.BloqueId, viewModel.Clientes.Where(cli => cli.Selected) .Select(cli => Convert.ToInt32(cli.Value)).ToList()); if (viewModel.Bloque.TipoEjercicioId == (int)TiposDeEjerciciosId.Crucigrama) { var crucigrama = new Crucigrama() { AreaId = viewModel.Bloque.AreaId, BloqueId = viewModel.Bloque.BloqueId, Descripcion = "Crucigrama", Enunciado = "Crucigrama", Horizontales = "Pistas de palabras horizontales", SubTemaId = viewModel.Bloque.SubTemaId, TipoEjercicioId = viewModel.Bloque.TipoEjercicioId, Verticales = "Pistas de palabras verticales" }; List <CasillaCrucigrama> icollection = new List <CasillaCrucigrama>(); for (int i = 0; i < 12; i++) { for (int j = 0; j < 12; j++) { icollection.Add(new CasillaCrucigrama() { letra = "", PosH = j, PosV = i }); } } crucigrama.CasillaCrucigramas = icollection; db.Crucigramas.Add(crucigrama); db.SaveChanges(); } TipoEjercicio tipoEjercicio = db.TipoEjercicios.Find(viewModel.Bloque.TipoEjercicioId); return(RedirectToAction("Create", tipoEjercicio.Controlador, new { id = viewModel.Bloque.BloqueId })); } } var subtema = db.SubTemas.Include(s => s.Tema).SingleOrDefault(s => s.SubTemaId == viewModel.Subtema.SubTemaId); viewModel.Subtema = subtema; viewModel.InicializarDesplegables(); return(View(viewModel)); }