예제 #1
0
        public ActionResult Vulnerabilities(VulnerabilitiesViewModel newVulnerabilities)
        {
            //solo si se ha iniciado sesion
            if (Session["UserGroup"] != null)
            {
                if (ModelState.IsValid)
                {
                    try
                    {
                        //Guardamos los nuevos valores en variables
                        string registration = newVulnerabilities.Matricula;
                        string nombre       = newVulnerabilities.Nombre;
                        int    Vul1         = Convert.ToInt16(newVulnerabilities.Vul1);
                        string ComentsVul1  = newVulnerabilities.ComentsVul1;
                        int    Vul2         = Convert.ToInt16(newVulnerabilities.Vul2);
                        string ComentsVul2  = newVulnerabilities.ComentsVul2;
                        int    Vul3         = Convert.ToInt16(newVulnerabilities.Vul3);
                        string ComentsVul3  = newVulnerabilities.ComentsVul3;
                        int    Vul4         = Convert.ToInt16(newVulnerabilities.Vul4);
                        string ComentsVul4  = newVulnerabilities.ComentsVul4;


                        //vamos a tener 4 edits para editar cada vulnerabilidad

                        #region EDITAR VULNERABILIDAD ACADEMICA

                        //Primero buscamos el registro de StudentsVulnerabilities que concuerde con la vulnerabilidad y el estudiante
                        var queryVul1 = (from sv in dbCtx.StudentVulnerabilities
                                         join s in dbCtx.Students on sv.StudentID equals s.ID
                                         where s.Registration == registration && sv.VulnerabilityID == 1
                                         select sv).SingleOrDefault();

                        //se guardan los nuevos valores
                        queryVul1.VulStatus   = Vul1;
                        queryVul1.VulComments = ComentsVul1;

                        //se guardan los cambios
                        dbCtx.Entry(queryVul1).State = EntityState.Modified;
                        dbCtx.SaveChanges();

                        #endregion

                        #region EDITAR VULNERABILIDAD ECONOMICA

                        var queryVul2 = (from sv in dbCtx.StudentVulnerabilities
                                         join s in dbCtx.Students on sv.StudentID equals s.ID
                                         where s.Registration == registration && sv.VulnerabilityID == 2
                                         select sv).SingleOrDefault();

                        //se guardan los nuevos valores
                        queryVul2.VulStatus   = Vul2;
                        queryVul2.VulComments = ComentsVul2;

                        //se guardan los cambios
                        dbCtx.Entry(queryVul2).State = EntityState.Modified;
                        dbCtx.SaveChanges();

                        #endregion

                        #region EDITAR VULNERABILIDAD PSICOLOGICA

                        var queryVul3 = (from sv in dbCtx.StudentVulnerabilities
                                         join s in dbCtx.Students on sv.StudentID equals s.ID
                                         where s.Registration == registration && sv.VulnerabilityID == 3
                                         select sv).SingleOrDefault();

                        //se guardan los nuevos valores
                        queryVul3.VulStatus   = Vul3;
                        queryVul3.VulComments = ComentsVul3;

                        //se guardan los cambios
                        dbCtx.Entry(queryVul3).State = EntityState.Modified;
                        dbCtx.SaveChanges();

                        #endregion

                        #region EDITAR VULNERABILIDAD TRANSPORTE

                        var queryVul4 = (from sv in dbCtx.StudentVulnerabilities
                                         join s in dbCtx.Students on sv.StudentID equals s.ID
                                         where s.Registration == registration && sv.VulnerabilityID == 4
                                         select sv).SingleOrDefault();

                        //se guardan los nuevos valores
                        queryVul4.VulStatus   = Vul4;
                        queryVul4.VulComments = ComentsVul4;

                        //se guardan los cambios
                        dbCtx.Entry(queryVul4).State = EntityState.Modified;
                        dbCtx.SaveChanges();

                        #endregion

                        #region LOG

                        //Buscar la carpeta en el proyecto
                        var pathLog = Server.MapPath("~") + @"Files";
                        //nombre del archivo
                        //como aparecia FilesLog.txt se le agregó la diagonal
                        var fileName = "/Log.txt";

                        StreamWriter sw = new StreamWriter(pathLog + fileName, true);
                        //Permite escribir en el archivo .txt
                        sw.WriteLine("Metodo: MainPageVulnerabilitiesEdit -" + DateTime.Now + "- Se editaron las vulnerabilidades del estudiante con matrícula: " + registration);
                        sw.WriteLine("Detalles: MainPageVulnerabilitiesEdit -" + DateTime.Now + "Vulnerabilidad académica status - " + Vul1 + " / Comentarios -" + ComentsVul1);
                        sw.WriteLine("Detalles: MainPageVulnerabilitiesEdit -" + DateTime.Now + "Vulnerabilidad económica status - " + Vul2 + " / Comentarios -" + ComentsVul2);
                        sw.WriteLine("Detalles: MainPageVulnerabilitiesEdit -" + DateTime.Now + "Vulnerabilidad psicológica status - " + Vul3 + " / Comentarios -" + ComentsVul3);
                        sw.WriteLine("Detalles: MainPageVulnerabilitiesEdit -" + DateTime.Now + "Vulnerabilidad transporte status - " + Vul4 + " / Comentarios -" + ComentsVul4);
                        //cierra la conexion
                        sw.Close();

                        #endregion

                        //para regresar a la vista de student se crea un STUDENTSviewModel
                        StudentsViewModel RedirectStudent = new StudentsViewModel();
                        RedirectStudent.Matricula = registration;
                        RedirectStudent.Nombre    = nombre;
                        RedirectStudent.Vul1      = Vul1;
                        RedirectStudent.Vul2      = Vul2;
                        RedirectStudent.Vul3      = Vul3;
                        RedirectStudent.Vul4      = Vul4;

                        //se retorna la vista de estudiante
                        return(RedirectToAction("Student", "Students", RedirectStudent));
                    }
                    catch
                    {
                        //si no se guardaron los cambios regresa la misma vista
                        return(View(newVulnerabilities));
                    }
                }
                //si el modelo no es valido regresa la misma vista
                return(View(newVulnerabilities));
            }
            else
            {
                //si no se ha hecho login entonces regresa al login
                return(RedirectToAction("Login", "Login"));
            }
        }
예제 #2
0
        public ActionResult Vulnerabilities(StudentViewModel student)
        {
            //solo si se ha iniciado sesion
            if (Session["UserGroup"] != null)
            {
                //se crea un student del viewModel
                VulnerabilitiesViewModel objVulnerabilities = new VulnerabilitiesViewModel();

                //se guarda el nombre y la matricula
                objVulnerabilities.Nombre    = student.Nombre;
                objVulnerabilities.Matricula = student.Matricula;

                //se guarda la matricula en una variable
                string registration = student.Matricula;

                #region GUARDAR VULNERABILIDADES YA CONSULTADAS

                //convertimos a string para poder usarlas como radio buttons
                objVulnerabilities.Vul1 = student.Vul1.ToString();
                objVulnerabilities.Vul2 = student.Vul2.ToString();
                objVulnerabilities.Vul3 = student.Vul3.ToString();
                objVulnerabilities.Vul4 = student.Vul4.ToString();

                #endregion

                #region OBTENER COMENTARIOS DE VULNERABILIDADES

                //se obtienen los comentarios de cada una de las vulnerabilidades
                var queryVul1 = (from sv in dbCtx.StudentVulnerabilities
                                 join s in dbCtx.Students on sv.StudentID equals s.ID
                                 where s.Registration == registration && sv.VulnerabilityID == 1
                                 select new
                {
                    coments = sv.VulComments
                }).SingleOrDefault();
                var queryVul2 = (from sv in dbCtx.StudentVulnerabilities
                                 join s in dbCtx.Students on sv.StudentID equals s.ID
                                 where s.Registration == registration && sv.VulnerabilityID == 2
                                 orderby sv.VulnerabilityID
                                 select new
                {
                    coments = sv.VulComments
                }).SingleOrDefault();
                var queryVul3 = (from sv in dbCtx.StudentVulnerabilities
                                 join s in dbCtx.Students on sv.StudentID equals s.ID
                                 where s.Registration == registration && sv.VulnerabilityID == 3
                                 orderby sv.VulnerabilityID
                                 select new
                {
                    coments = sv.VulComments
                }).SingleOrDefault();
                var queryVul4 = (from sv in dbCtx.StudentVulnerabilities
                                 join s in dbCtx.Students on sv.StudentID equals s.ID
                                 where s.Registration == registration && sv.VulnerabilityID == 4
                                 orderby sv.VulnerabilityID
                                 select new
                {
                    coments = sv.VulComments
                }).SingleOrDefault();

                //agregar valores de los comentarios
                objVulnerabilities.ComentsVul1 = queryVul1.coments;
                objVulnerabilities.ComentsVul2 = queryVul2.coments;
                objVulnerabilities.ComentsVul3 = queryVul3.coments;
                objVulnerabilities.ComentsVul4 = queryVul4.coments;

                #endregion

                //se retorna la vista
                return(View(objVulnerabilities));
            }
            else
            {
                //si no se ha hecho login entonces regresa al login
                return(RedirectToAction("Login", "Login"));
            }
        }