public ActionResult Crear([Bind(Include = "nombre,fechaInicio,fechaFin")] PlanDeMejora plan, List <String> ProfeSeleccionado = null, List <String> FormularioSeleccionado = null, List <Objetivo> Objetivo = null, Dictionary <String, String> SeccionConObjetivo = null, Dictionary <String, String> PreguntaConAccion = null) { if (!permissionManager.IsAuthorized(Permission.CREAR_PLANES_MEJORA)) { TempData["alertmessage"] = "No tiene permisos para acceder a esta página."; return(RedirectToAction("../Home/Index")); } // Objeto de ayuda business intelligence planes de mejora PlanDeMejoraBI planesHelper = new PlanDeMejoraBI(); // Asignacion del codigo al nuevo plan de mejora planesHelper.setCodigoAPlanDeMejora(this.db, plan); //Agregando los objetivos al plan plan.Objetivo = Objetivo; //Agregando las secciones a los objetivos planesHelper.insertSeccionesEnObjetivos(plan.Objetivo, SeccionConObjetivo, db); //Agregando las preguntas a las acciones planesHelper.insertPreguntasEnAcciones(plan.Objetivo, PreguntaConAccion, db); //Agrgando los formularios al plan de mejora planesHelper.insertFormularios(plan, FormularioSeleccionado, db); //Agregando los profesores seleccionados al plan de mejora planesHelper.insertProfesores(plan, ProfeSeleccionado, db); // Almacenamiento del plan por medio de un procedimiento almacenado planesHelper.savePlan(plan); db.SaveChanges(); PlanDeMejora planTemporal = db.PlanDeMejora.Find(plan.codigo); if (planTemporal != null && ProfeSeleccionado != null) { if (ProfeSeleccionado.Count > 0) { this.EnviarCorreoSobreCreacionPlan(planTemporal, ProfeSeleccionado); } } return(Json(new { success = true, responseText = "Your message successfuly sent!" }, JsonRequestBehavior.AllowGet)); }
public void insertSeccionesInObjetivosEmpty() { int tamanno = 4; Boolean resultado = true; // Creacion de los objetivos var objetivos = new List <Objetivo> { new Objetivo() { codPlan = 32, nombre = "00000000" }, new Objetivo() { codPlan = 32, nombre = "00000001" }, new Objetivo() { codPlan = 32, nombre = "00000002" }, new Objetivo() { codPlan = 32, nombre = "00000003" }, }.AsQueryable(); var mockObjetivosDBSet = new Mock <DbSet <Objetivo> >(); mockObjetivosDBSet.As <IQueryable <Objetivo> >().Setup(m => m.Provider).Returns(objetivos.Provider); mockObjetivosDBSet.As <IQueryable <Objetivo> >().Setup(m => m.Expression).Returns(objetivos.Expression); mockObjetivosDBSet.As <IQueryable <Objetivo> >().Setup(m => m.ElementType).Returns(objetivos.ElementType); mockObjetivosDBSet.As <IQueryable <Objetivo> >().Setup(m => m.GetEnumerator()).Returns(objetivos.GetEnumerator()); // Ahora creando las tablas de las secciones var secciones = new List <Seccion> { new Seccion() { Codigo = "00000000" }, new Seccion() { Codigo = "00000001" }, new Seccion() { Codigo = "00000002" }, new Seccion() { Codigo = "00000003" } }.AsQueryable(); var mockSeccionesDBSet = new Mock <DbSet <Seccion> >(); mockSeccionesDBSet.As <IQueryable <Seccion> >().Setup(m => m.Provider).Returns(secciones.Provider); mockSeccionesDBSet.As <IQueryable <Seccion> >().Setup(m => m.Expression).Returns(secciones.Expression); mockSeccionesDBSet.As <IQueryable <Seccion> >().Setup(m => m.ElementType).Returns(secciones.ElementType); mockSeccionesDBSet.As <IQueryable <Seccion> >().Setup(m => m.GetEnumerator()).Returns(secciones.GetEnumerator()); var mockDb = new Mock <DataIntegradorEntities>(); //Seteo de las tablas mockDb.Setup(m => m.Objetivo).Returns(mockObjetivosDBSet.Object); mockDb.Setup(m => m.Seccion).Returns(mockSeccionesDBSet.Object); PlanDeMejoraBI controller = new PlanDeMejoraBI(); //Haciendo el diccionario que crea la relacion entre los objetivos y las secciones Dictionary <String, String> dic = new Dictionary <string, string>(); //Agregando una unica seccion por objetivo for (int i = 0; i < tamanno; i++) { var value = "0000000" + i; dic.Add(value, value); } controller.insertSeccionesEnObjetivos(objetivos.ToList(), dic, mockDb.Object); var seccionesTemp = mockDb.Object.Seccion.ToList(); var objetivosTemp = mockDb.Object.Objetivo.ToList(); //Ahora ya con los objetivos modificados hacemos las asociaciones for (int i = 0; i < 4; ++i) { string identificadorObjetivo = objetivosTemp[i].nombre; var identificadorSeccion = objetivosTemp[i].Seccion; if (identificadorObjetivo == null) { resultado = false; } } //Ahora vemos si pasa la prueba Assert.IsTrue(resultado); }