示例#1
0
 public ActionResult EditSubject(int id)
 {
     // Carga los datos de la materia a modificar
     try
     {
         ListSubjectViewModelAdmin model = new ListSubjectViewModelAdmin();
         using (Models.DBContainer db = new Models.DBContainer())
         {
             Subject subject = db.Subjects.Find(id);
             if (subject == null)
             {
                 TempData["Alert"] = "An error occurred, try again later";
                 return(RedirectToAction("ListSubjects"));
             }
             model.id_subject  = subject.id_subject;
             model.name        = subject.name;
             model.description = subject.desc;
             model.capacity    = subject.capacity;
             model.time_from   = subject.time_from;
             model.time_to     = subject.time_to;
             model.id_teacher  = subject.id_teacher;
         }
         PopulateDropDownList();
         return(View(model));
     }
     catch (Exception exc)
     {
         throw new Exception(exc.Message);
     }
 }
示例#2
0
        public ActionResult EditSubject(ListSubjectViewModelAdmin model)
        {
            // Modifica la materia y la persiste en la base de datos
            try
            {
                if (ModelState.IsValid)
                {
                    using (Models.DBContainer db = new Models.DBContainer())
                    {
                        Subject subject = db.Subjects.Find(model.id_subject);
                        if (subject == null)
                        {
                            TempData["Alert"] = "An error occurred, try again later";
                            return(RedirectToAction("ListSubjects"));
                        }
                        subject.name       = model.name;
                        subject.desc       = model.description;
                        subject.capacity   = model.capacity;
                        subject.time_from  = model.time_from;
                        subject.time_to    = model.time_to;
                        subject.id_teacher = model.id_teacher;

                        if (subject.time_to <= subject.time_from)
                        {
                            // Horario no válido
                            ViewData["Error"] = "Ending time must be strictly greater than starting time";
                            PopulateDropDownList();
                            return(View(model));
                        }

                        db.Entry(subject).State = System.Data.Entity.EntityState.Modified;
                        db.SaveChanges();
                    }
                    return(RedirectToAction("ListSubjects", "Admin"));
                }
                // Si el modelo no es válido, tengo que volver a la misma pantalla, con
                // lo cual hay que rellenar de nuevo el DropDownList
                PopulateDropDownList();
                return(View(model));
            }
            catch (Exception exc)
            {
                throw new Exception(exc.Message);
            }
        }
示例#3
0
        public ActionResult NewSubject(ListSubjectViewModelAdmin model)
        {
            // Crea una nueva materia y la guarda en el sistema
            try
            {
                if (ModelState.IsValid)
                {
                    using (Models.DBContainer db = new Models.DBContainer())
                    {
                        Subject subject = new Subject();
                        subject.name       = model.name;
                        subject.desc       = model.description;
                        subject.capacity   = model.capacity;
                        subject.time_from  = model.time_from;
                        subject.time_to    = model.time_to;
                        subject.id_teacher = model.id_teacher;

                        if (subject.time_to <= subject.time_from)
                        {
                            // Horario no válido
                            ViewData["Error"] = "Ending time must be strictly greater than starting time";
                            PopulateDropDownList();
                            return(View(model));
                        }

                        db.Subjects.Add(subject);
                        db.SaveChanges();
                    }
                    return(RedirectToAction("ListSubjects", "Admin"));
                }
                // Si el modelo no es válido, tengo que volver a la misma pantalla, con
                // lo cual hay que rellenar de nuevo el DropDownList
                PopulateDropDownList();
                return(View(model));
            }
            catch (Exception exc)
            {
                throw new Exception(exc.Message);
            }
        }